为什么我的文本框值没有使用struts进入操作类?我正在获取密码字段的值,但不是文本字段

时间:2013-03-25 05:41:56

标签: jsp servlets struts jsp-tags jspinclude

这是我的动作类,我已经正确定义了struts.xml,    我的问题是,    我得到textBox用户名值NULL,但其他输入返回值。    我正在添加User.java类,Struts ActionClass。

public class UserLogin extends ActionSupport {
User user = new User();
public String getAccess() {  
  System.out.println(user.getPassword()+"and"+user.getUserName()); 
 // output: xyz and null
  if (user.getPassword().equals("pass")){
    System.out.println(user.getUserName());
            return "success";
} else{
    return "input";
}
}

public User getModel() {

return user;
}
}

我的 jsp 页面是:

<form action="login">
UserName:<input type="text" name="userName"/>
Password:<input type="password" name="password"/>
<input type="submit" value="login"/>
</form>

User.java

public User {

private String userName;
private 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;
}
}

2 个答案:

答案 0 :(得分:2)

使用Jsp taglib获取用户输入  使用以下JSp表单将此代码放在login.jsp文件中。

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>LogIn</title>
</head>

<body>
<s:form action="login" method="get">
 <s:textfield name="userName" key="Username" size="20" />
<s:password name="password"  key="Password" size="20" />
<s:submit method="getAccess" align="center"/>
</s:form>
</body>
</html>

如果按照

 <%@ taglib prefix="s" uri="/struts-tags"%>

给出错误然后下载jsp标签lib jar并放入你的lib文件夹。

答案 1 :(得分:1)

在您的操作中定义属性userNamepassword及其getter和setter方法。

只需使用getUserName()getPassword()代替user.getUserName()user.getPassword()

操作表单可以使用这些属性读取浏览器中提交的值。您必须将这些属性分配给user对象,然后才能从user对象中使用它们。