我是做一个用户登录系统:
action:
  
public String addUser(String userName,String password,Date birthday,String phone) throws Exception{

User user=new User();
userName=user.getUserName();
password=user.getPassword();
phone=user.getPhone();
birthday=user.getBirthday();

LoginService service=new LoginImpl();
service.addUser(userName, password, phone);

if(userName==null){
return "fail";
}

return "addUser";
}
struts配置如下:
<struts>
    <package name="login" extends="struts-default">
     <action name="addUser" class="com.login.action.LoginAction" method="addUser">
     <result name="addUser">/jsp/addUser.jsp</result>
     <result name="fail">/jsp/error.jsp</result>
     </action>
    
    </package>
</struts>
运行的结果是:java.lang.NoSuchMethod...
为什么会这样呀?请大家帮忙解决下.急...

解决方案 »

  1.   

    action函数方法addUser()方法应该没有参数的吧获得userName等的值是使用
    public void setUserName(String userName){
       this.userName=userName;
    }
    public String getUserName(){
       return userName;
    }
    不知道我讲的对不对?你先试下咯
      

  2.   

    struts2的ACTION里面要写个public String execute()方法,没有参数然后在这个方法里面调用你那个ADDUSER就好了
      

  3.   

    Action method名形式同execute()方法一样。
      

  4.   

    public class LoginAction extends ActionSupport { private String username; private String password; private int age;
            //spring DI
    private LoginService loginser;
    public LoginService getLoginser() {
    return loginser;
    } public void setLoginser(LoginService loginser) {
    this.loginser = loginser;
    } public String getPassword() {
    return password;
    } public void setPassword(String password) {
    this.password = password;
    } public String getUsername() {
    return username;
    } public void setUsername(String username) {
    this.username = username;
    } public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } public String execute() throws Exception {

    if (loginser.isLogin(username, password)) { return SUCCESS;
    } else {
    return INPUT;
    } }
    }
      

  5.   

    你应该仔细看下struts2的帮助文档
      

  6.   

    把userName password birthday phone 这4个字段写成
    LoginAction的4个带有getter/setter方法的属性,
    然后把addUser()方法改成无参数方法提交时会自动把相同name的表单元素的值与action的属性进行绑定
    要取这4个字段的值可直接从action的属性中获得