我有两个jsps,LoginSuccess.jsp和acctinfo.jsp。 在LoginSuccess.jsp中,我在LoginSuccess.jsp中设置了一个名为Username的属性,其中包含有效的用户名值
我想要实现的是:当用户点击超链接时,它通过以下语句将控制权转移到acctinfo.jsp 其中url =" acctinfo.jsp"
在acctinfo.jsp中。我从会话中提取Username变量。我有一个名为UserName的输入字段,其值我希望设置为值="<%= userName%>"
我希望看到的是使用此userName值填充的输入字段。相反,JSP编译器会抱怨以下异常:
HTTP Status 500 - /acctinfo.jsp(36,66) Scripting elements ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) are disallowed here.
以下是LoginSuccess.jsp的代码:
<body>
<%
System.out.println("LoginSuccess.jsp: Entered LoginSuccess.jsp");
String username = request.getParameter("Username");
System.out.println("LoginSuccess.jsp: User Name from the request is: " + username);
session.setAttribute("Username", username);
String url2 = "acctinfo.jsp";
System.out.println("LoginSuccess.jsp: URL is: " + url);
//session.setAttribute("CustomerName", customerName);
%>
**<h3>Login successful.</h3>
<a href=<%= url2 %>>Proceed to Account Information Page</a>**
以下是acctinfo.jsp的代码:
<%
String userName = (String) session.getAttribute("Username");
%>
<form name="ViewBalance" action="" method="POST">
<p>UserName: <input type=text NAME=UserName value="<%= userName %>">
</form>
这是正确的代码:&#34;超链接到acctinfo.jsp&#34; line确实在我的scriplet块之外,我仍然看到这个问题。 JSP编译器仍在抱怨它不允许脚本元素在这里。 我在这做错了什么?我希望有人能够更多地了解这个问题
更新:我通过使用JSP EL解决了这个问题并取消了Scriptlets。
在LoginSuccess.jsp中: 我在会话中设置属性Username,如下所示:
session.setAttribute("Username", username);
在我的acctinfo.jsp中,我做了:
<p>UserName: <input type=text NAME=UserName value="${sessionScope.Username}"></p>
答案 0 :(得分:-1)
您正在编写脚本中的HTML代码 - 您必须在编写完Java代码后关闭该脚本。
这应该这样做 - LoginSuccess.jsp:
<body>
<%
System.out.println("LoginSuccess.jsp: Entered LoginSuccess.jsp");
String username = request.getParameter("Username");
System.out.println("LoginSuccess.jsp: User Name from the request is: " + username);
session.setAttribute("Username", username);
String url2 = "acctinfo.jsp";
System.out.println("LoginSuccess.jsp: URL is: " + url);
//session.setAttribute("CustomerName", customerName);
%>
<h3>Login successful.</h3>
<a href=<%= url2 %>>Proceed to Account Information Page</a>