NeQrhk 2016-06-29 01:02 采纳率: 30.6%
浏览 3370
已采纳

struts 2 com.opensymphony.xwork2.u报错

六月 29, 2016 8:47:55 上午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error
严重: Exception occurred during processing request: null
java.lang.NullPointerException

提示在这一个代码段里面 if语句错误

package cn.itcast.actionT;

import cn.itcast.domain.User;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class LoginAction extends ActionSupport implements ModelDriven{
private static final long serializableUID = 1L;
private User user;
@Override
public User getModel() {
return user;
}
@Override
public String execute()throws Exception{
//获取ActionContext
ActionContext context = ActionContext.getContext();
if("tom".equals(user.getUsername())&&"123".equals(user.getPassword())){
context.getSession().put("user","user");
return SUCCESS;
}else {
context.getSession().put("msg", "登录失败");
return INPUT;
}
}
}
我把所有代码都复制上来
package cn.itcast.actionT;

import cn.itcast.domain.User;

import com.opensymphony.xwork2.ActionSupport;

public class BookAction extends ActionSupport{
private User user;
public String add(){
System.out.println("book add");
return SUCCESS;
}
public String del(){
System.out.println("book del");
return SUCCESS;
}
public String update(){
System.out.println("book update");
return SUCCESS;
}
public String find(){
System.out.println("book find");
return SUCCESS;
}
}
package cn.itcast.domain;

public class 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;
}
}

struts.xml

package name="default" namespace="/" extends="struts-default">
interceptors>
interceptor name="privilege" class="cn.itcast.interceptor.PrivilegeInterceptor"/>
/interceptors>
action name="login" class="cn.itcast.actionT.LoginAction">
result>/main.jsp /result>
result name="input">/login.jsp /result>
/action>
action name="book_*" class="cn.itcast.actionT.BookAction" method="{1}">
result>/success.jsp /result>
result name="login">/login.jsp /result>
interceptor-ref name="privilege"/>
/action>

/package>
/struts>

main.jsp

a href="/Two/book_del">book_del /a>
a href="/Two/book_add">book_add /a>
a href="/Two/book_find">book_find /a>
a href="/Two/book_update">book_update /a>

login.jsp

form action="/Two/login.action" method="post">
              用户名:input type="text" name="username"/>br>
             密码:input type="password" name="password"/>br>
  input type="submit" value="登录™†"/>
/form>
  • 写回答

3条回答 默认 最新

  • yu954663801 2016-06-29 01:13
    关注

    user对象不存在,页面上的input通过getter和setter方法注入到后端的username和password,在后端获得的是username和password。
    如果需要封装对象,有两种方式:
    1、模仿struts1的形式,在action里面声明
    private User user;
    public User getUser(){...}
    public void setUser(User user){...}
    JSP中:
    <input type="text" name="user.username"/>
    <input type="text" name="user.password"/>

    2、JSP和Action不变,后端得到username和password,new User()对象,把值放进去

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题