日期:2014-05-20  浏览次数:20695 次

初学求教Struts2的登陆问题
一个登陆demo 问题是总是跳到 error.jsp页面 下面是个源码
Java code

package mypack;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
    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;
    }
    public String execute() {
        if ("aaa".equals(getUsername())&& "bbb".equals(getPassword())) {
            return "success";
        } else {
            return "error";
        }
    }
}

struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default">
        <action name="login" class="mypack.UserAction">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

index.jsp
<body>
    <form action="login.action" method="post">
        name<input type=text name=username/><br/>
        pass<input type=text name=password/><br/>
        <input type=submit name=submit value="tijiao">
    </form>
  </body>
下面两个一个是成功页,一个是错误页
<body>
    success <br>
  </body>
<body>
    success <br>
  </body>


这里的用户名和密码怎么写都是跳到error页 
为什么啊

------解决方案--------------------
你用户名要输入aaa 密码要输入bbb 如果还跳到error页的话 查看下error.jsp以及success.jsp页面代码,是不是body里面都写的一样。
------解决方案--------------------
输入aaa bbb,保证success.jsp里面是success,error.jsp里面是error,如果还出错的话,你要看看页面上输入的用户密码是不是包含了空白符
------解决方案--------------------
调试过没有?看看。getuserName()和getpassword()有没有拿到数据。
------解决方案--------------------
session没放值吧,
------解决方案--------------------
name<input type=text name=username/><br/>
pass<input type=text name=password/><br/>

加上双引号试试
name<input type="text" name="username"/><br/>
pass<input type="text" name="password"/><br/>

------解决方案--------------------
接着上面哈,应该是struts2框架在识别标签名字时,判断字符串是否加了“”的
------解决方案--------------------
探讨

引用:

调试过没有?看看。getuserName()和getpassword()有没有拿到数据。

对 这正是我想补充的 System.our.println("getUsername()"); 输出的是null 为什么啊