将变量传递给javabean

时间:2012-08-18 15:43:37

标签: jsp javabeans

我有一个register.jsp文件。它从提交的表单中读取变量,如下所示:

    <%
        if(request.getParameter("username") != null && request.getParameter("password") != null){
            String username = request.getParameter("username");
            String password = request.getParameter("password");
         }
     %> 

我有一个java bean如下。

public class RegistrationBean {


// Constructor
public RegistrationBean(){}  


public boolean login(String username, String password){
    boolean result = false;
    System.out.println("username");
    if(username.equals("username") && password.equals("admin")){
        result = true;
    }
    return result;
}


}

现在我试图在我的jsp文件中调用此登录函数,如下所示。我也在我的jsp文件的顶部添加了useBean。

    <jsp:useBean id="register" class="registration.RegistrationBean" scope="session" />

    <%
        if(request.getParameter("username") != null && request.getParameter("password") != null){
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            if(register.login(username, password)){
              // do something
            }
     %> 

但我意识到用户名和密码的值没有传递给bean。但是当我在.jsp文件中打印它时,它具有适当的值。是否有任何原因导致该值未传递给login()函数中的函数。无论我做什么,它都是假的。

感谢。

2 个答案:

答案 0 :(得分:1)

属性值request.getParameter(“sn”)引用“必须在值中使用时进行转义

当我使用value =“&lt;%= request.getParameter(”val“)%&gt;”/&gt;“

运行我的页面时,会出现

以上消息

答案 1 :(得分:0)

这应该真的有效。 但是,这是让它发挥作用的另一种方式:

<jsp:useBean id="register" class="registration.RegistrationBean" scope="session">
<jsp:setProperty name="register" property="username" value="<%=request.getParameter("username")%>"/>
<jsp:setProperty name="register" property="password" value="<%=request.getParameter("password")%>"/>
<jsp:useBean />

username课程中为passwordRegistrationBean添加setter和getter。 usernamepassword将是类变量。将login函数设为非参数化,即将其称为register.login()