我使用bean /表单处理在登录屏幕上获取输入参数,然后使用这些参数尝试并将用户登录到应用程序中。
但是我收到错误 -
org.apache.jasper.JasperException:/loginbean.jsp(6,59)属性值request.getParameter(“userName”)引用“在val中使用时必须转义
出现此错误的代码行是下面给出的代码块中的第二行 - (即name ='userName'的属性的代码行)
loginbean.jsp
<jsp:useBean id="db" scope="request" class="logbean.LoginBean" >
<jsp:setProperty name="db" property="userName" value="<%=request.getParameter("userName")%>"/>
<jsp:setProperty name="db" property="password" value="<%=request.getParameter("password")%>"/>
</jsp:useBean>
LoginBean.java
package logbean;
public class LoginBean {
String userName="";
String password="";
public String getUserName() {
return userName;
}
public void setUsername(String username) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
答案 0 :(得分:2)
下面,
<jsp:setProperty name="db" property="userName" value="<%=request.getParameter("userName")%>"/>
<jsp:setProperty name="db" property="password" value="<%=request.getParameter("password")%>"/>
您正在尝试混合 scriptlet 和taglibs。这是无效的。使用其中一个。由于 scriptlets 是一种dead技术,我建议完全摆脱它。正确的方法是使用EL:
<jsp:setProperty name="db" property="userName" value="${param.userName}"/>
<jsp:setProperty name="db" property="password" value="${param.password}"/>
或者,如果所有参数名称与属性名称相同,您也可以让JSP自动设置所有属性:
<jsp:setProperty name="db" property="*"/>