初学者Struts2 无法获取页面的值 求答案
文件如下
LoginActionForm.java
import com.opensymphony.xwork2.ActionSupport;import com.lee.user.user.*;public class LoginActionForm extends ActionSupport{ User us = new User(); public String execute(){ System.out.println("username:"+us.getUserName()); System.out.println("password:"+us.getPassWord()); return SUCCESS; }}public class User { private String UserName; private String PassWord; /** * @return the userName */ public String getUserName() { return UserName; } /** * @param userName the userName to set */ public void setUserName(String userName) { UserName = userName; } /** * @return the passWord */ public String getPassWord() { return PassWord; } /** * @param passWord the passWord to set */ public void setPassWord(String passWord) { PassWord = passWord; }}<s:form action="login" method="post"> <s:textfield name="UserName" label="用户名"></s:textfield> <s:password name="PassWord" label="密码"></s:password> <s:submit label="登陆" value="登陆"></s:submit> </s:form>
<package name="default" namespace="/" extends="struts-default"> <action name="loginindex"> <result>login.jsp</result> </action> <action name="login" class="com.lee.user.form.LoginActionForm"> <result name="success">wellcom.jsp</result> <result name="error">error.jsp</result> </action> <action name="goback"> <result name="success">login.jsp</result> </action> </package>
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<s:submit label="登陆" value="登陆"></s:submit>
</s:form>
[解决办法]
private User us;封装jsp中 <s:textfield name="us.UserName" label="用户名"></s:textfield>
[解决办法]
public class LoginActionForm extends ActionSupport{ User us = new User(); public String execute(){ System.out.println("username:"+us.getUserName()); System.out.println("password:"+us.getPassWord()); return SUCCESS; }以上写也可以 你继承user类就ok了不过不能用execute()方法了 而行写项目都不用execute方法的配置struts2 method=“方法名”<action name="login" class="com.lee.user.form.LoginActionForm" method="方法名">
[解决办法]
你是用Spring依赖注入的吗? 在LoginActionForm 类中你就不需要再取NEW 不然的话它每次都是NEW一个新的,所以为空,
[解决办法]
页面上的
<s:textfield name="UserName" label="用户名"></s:textfield>
<s:password name="PassWord" label="密码"></s:password>
name属性值最好小写。
[解决办法]