Hyperlink werden bei bestimmten aktionen angezeigt

mrno

Erfahrenes Mitglied
Hi,
ich habe eine jsp Seite geschrieben. Nun habe ich folgendes Problem. Man muss sich auf der seite einloggen. Nun will ich das nur bestimmte user , bestimmte Hyperlinks verwenden können. Habe aber keine ahnung wie ich das mache. Den name des Benutzers wird in einem String gespeichert. Ich habe es mir so gedacht das in den bedingungen wenn sie erfüllt werden die Hyperlinks erstellt werden. Ich kenne nur keinen befehle die dann ein hyperlink erstellen. Kennt jemand so einen befehl oder muss ich es anders lösen
 
Hi!
Das kannst du mit der struts logic-taglibrary lösen.

<logic:present name="username">
<html:link page="linkziel">
</logic:present>

Eine andere Möglichkeit bietet die
Standard Taglib, damit kenne ich mich aber nicht so besonders aus.

Wenn du noch ausführlicher auf deine Bedingungen eingehst, kann ich dir vielleicht noch besser helfen.

Grüsse TrueSun
 
Beim login wird eine session erzeugt

auszug vom login script
session.setAttribute( "name", nickname);
//nickname=loginname

wenn jetzt z.b. das Attribut den wert root erhält . Will ich das man auf das admincontrolpanel zugreifen kann. Der link soll aber nur erscheinen wenn das Attribbut name=root ist.
Dies wollte ich im Frame Menü so lösen

///////////////////////////////////Code///////////////////////////////////
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>menue</title>
</head>
<body>
<%
String nick=(String) session.getAttribute("name");

if(nick.matches("root")==true)
{
//Hier bräuchte ich dann den befehl um den link zu erstellen der zum AdminCP führt
}
%>
<a href="logout.jsp">logout</a>
</body>
</html>
///////////////////////////////////Code///////////////////////////////////

Ich denke das müste reichen
 
Hallo!

Achso, da ist die einfachste Möglichkeit wohl:

Code:
<body>
<%
String nick=(String) session.getAttribute("name");
if(nick.matches("root")==true) { %>
<a href="Kontrollpanel.jsp">kp</a>
<%}%>

Dabei sieht den link auch jemand der rooter heisst z.B. wenn du equals benutzt, dann hast du das Problem nicht.

Grüsse TrueSun
 
hab es ausprobiert. Man sieht den link nicht wenn man rooter heißt. Wie kommst du darauf das man dann den link auch sehen kann. Die if -Schleife wird ja nicht ausgeführt da root nicht rooter ist. Hat mehr buchstaben und ist auch länger. also nicht das gleiche
 
Hi!

*schäm*

System.out.println("root".matches("root"));
System.out.println("rooter".matches("root"));

>true
>false

Du hast recht, ich habe mich vertan. Freut mich das es jetzt läuft. Trotzdem equals != matches. Ich würde dir aber dringend zur Verwendung von taglibraries raten. Das macht deinen Code besser wartbar und für andere wesentlich leserlicher.

Grüsse TrueSun
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück