2 ilove xx ilove_xx 于 2016.03.07 14:59 提问

登录。空指针的问题,求帮忙,新手啊

action里的获取的属性为null

@Controller
@Scope("prototype")
public class LoginAction extends BaseAction{

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Autowired
private UserService userService;


public String login(){

    UserQueryVo userQueryVo = this.getModel();
    String name = userQueryVo.getUserCustomer().getName();
    String password = userQueryVo.getUserCustomer().getPassword();
    User user = userService.Login(name, password);
    if(user!=null){
        return "login";
    }



    @Entity

@Table(name = "used_user")
public class User {

private Integer id;
private String name;
private String password;
private String sex;
private Integer age;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
@Column(name="name")
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}



<body>
欢迎来到本页面
<form id="oh" action="${pageContext.request.contextPath}/login" method="post">

    用户<input type="text" name="name"/><br/>
    密码<input type="password" name="password" /><br/>
    <input type="submit" value="登录"/>
</form>

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.07 15:05
u013829202
u013829202   Rxr 2016.03.07 15:11

你在action根本就没取页面的用户,密码。

u013829202
u013829202 回复ilove_xx: 差不多就是这个意思。
接近 2 年之前 回复
ilove_xx
ilove_xx 回复觅夜的黑: 哦哦,谢谢啊,我弄明白啦
接近 2 年之前 回复
ilove_xx
ilove_xx 回复觅夜的黑: 页面传递的name=“name” 和javabean的属性名一样不就可以获取值了吗
接近 2 年之前 回复
ilove_xx
ilove_xx 回复觅夜的黑: 页面我传递的值是 <input type="text" name="name"/> 我创建了一个User的javaBean,然后创建了一个UserCustomer继承User,然后将UserCustomer注入到了UserQueryVo,页面传递的那么
接近 2 年之前 回复
u013829202
u013829202 回复ilove_xx: 在action层,不是要取页面的值吗? 你的vo只是数据库的吧。我在action也没看到user对象
接近 2 年之前 回复
ilove_xx
ilove_xx 怎么没有获取啊
接近 2 年之前 回复
ilove_xx
ilove_xx 怎么没有获取啊
接近 2 年之前 回复
wangkang80
wangkang80   2016.03.07 15:42

楼主代码跳跃的比较厉害呀. this.getModel(); 是如何实现的,应该是这一句返回的空吧,或者说是,绑定参数到VO失败.

基本使用spring的方式,建议参考 : http://git.oschina.net/wangkang/llsfw

wangkang80
wangkang80 是的.
接近 2 年之前 回复
ilove_xx
ilove_xx 回复wangkang80: 哦,你说的是使用springmvc吧 把queryVo直接放到方法参数列表
接近 2 年之前 回复
wangkang80
wangkang80 回复ilove_xx: 怎么说呢,这种写法有点太不spring了,其实你可以直接将UserQueryVo写在login的参数列表里,可自动包装的,根本无需写这些东西,建议你去看看我发给你连接项目的login是怎么写的吧.
接近 2 年之前 回复
ilove_xx
ilove_xx public BaseAction(){ try {Type genericSuperclass = this.getClass().getGenericSuperclass(); if(genericSuperclass!=null && genericSuperclass instanceof ParameterizedType){ ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass; Type type = parameterizedType.getActualTypeArguments()[0]; Class<T> modelClass = (Class<T>) type; model = modelClass.newInstance();
接近 2 年之前 回复
ilove_xx
ilove_xx this.getModel是这样
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!