关于ognl.OgnlException: target is null for setProperty(null的解决方案

在跑struts2的时候有时候会出现上面的错,特别是新手,

这种情况是在struts2高级的POJO访问时候出现的s

警告:

Error setting expression ‘user.password‘ with value ‘[Ljava.lang.String;@1cb2dd1‘
ognl.OgnlException: target is null for setProperty(null, "password", [Ljava.lang.String;@1cb2dd1)
 at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2219)

跟上面差不多的异常,我刚开始也遇到这个比较纠结的问题,下面我来说说我是如何解决的吧,可能大家遇到的跟我的不一样。但是这中间有几个地方需要注意,不然就会出现上面的错。

1、前台jsp

<body>
    <form action="<%= path%>/login.action" method="post">
    用户名:<input type = "text" name = "user.username"><br/>
    密     码:<input type = "text" name = "user.password"><br/>
  <input type = "submit" value = "login">
    </form>
  </body>

注意两个地方,一个是input里面的name要写成**.XX;这里的**就是你后面action中的一个类对象,小写就OK,我这里是一个user,还有就是这里是name=不是id=,如果是用id的话,好像是传不到action中去的。

2、action类

public class Login extends ActionSupport {
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    private User user = new User();

    @Override
    public String execute() throws Exception {
        System.out.println("username="+user.getUsername()+",password="+user.getPassword());
        return SUCCESS;
    }

}

user类

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

}

(hibernate+struts)action中的 user类必须得new,如果不new会报空指针

如果是SSH2的话,action中的user不需要new,但是需要注意,在jsp中,user.usernname中的user要和private User user对应。

再一个就是必须得有get/set方法,user的get/set方法。

struts.xml

<package name="login"  extends="struts-default">
        <action name="login" class="com.ssh2.action.Login">
            <result name="success" type="redirect">/index.jsp</result>
            <result name="error" type = "redirect">/login.jsp</result>
        </action>
    </package>

注意上面几点就没问题了。

时间: 2024-08-25 10:29:16

关于ognl.OgnlException: target is null for setProperty(null的解决方案的相关文章

ognl.OgnlException: target is null for setProperty(null, &quot;login&quot;, [Ljava.lang.String;@133cdbd) 国际化时,登录按钮报错

虽然不影响程序运行,但是会报错警告 警告: Error setting expression 'html.login' with value '[Ljava.lang.String;@133cdbd'ognl.OgnlException: target is null for setProperty(null, "login", [Ljava.lang.String;@133cdbd) 登录代码 <s:submit id="login" key="h

ognl.OgnlException: target is null for setProperty(null,&amp;quot;XXXX&amp;quot;...)

今天遇到了这个奇葩问题,最后来回比对了一下前辈写过的一段完整代码后才发现问题. Error大概描写叙述为: 警告: Error setting expression 'XXX' with value '[Ljava.lang.String;@1cb2dd1' ognl.OgnlException: target is null for setProperty(null, "XXX", [Ljava.lang.String;@1cb2dd1) at ognl.OgnlRuntime.se

ognl.OgnlException: target is null for setProperty(null,&quot;XXXX&quot;...)

今天遇到了这个奇葩问题,最后来回比对了一下前辈写过的一段完整代码后才发现问题. Error大概描述为: 警告: Error setting expression 'XXX' with value '[Ljava.lang.String;@1cb2dd1' ognl.OgnlException: target is null for setProperty(null, "XXX", [Ljava.lang.String;@1cb2dd1) at ognl.OgnlRuntime.setP

解决ognl.OgnlException: target is null for setProperty(null, &quot;authorized&quot;, [Ljava.lang.String;@1d7ce3)

刚看到网上关于解决ognl.OgnlException: target is null for setProperty(null, "authorized", [Ljava.lang.String;@1d7ce3)错误,看了几篇都发现不对,断点调试下,解决了该问题.分享给大家: 解决类似于ognl.OgnlException: target is null for setProperty(null, "authorized", [Ljava.lang.String;

ognl.OgnlException: target is null for setProperty 异常

这个异常是因为struts.xml配置文件中action的name属性写错了: <action name="register"class="org.apache.struts.helloworld.action.Register" method="execute"> <result name="success">/thankyou.jsp</result></action> na

(异常分析)关于target is null for setProperty的问题总结!

这个异常出在当表单提交的数据注入到action的bean类时无法注入报出这个错误! 关于这种问题的几种可能性总结下: 1.       对应的属性没有加get set  方法 2.       提交表单中有更多的name属性而对应的action 或者model里面没有这个方法(这里重要就包括一个图片button  往往让人们难以发现)如下面表示: <input type="image" name="Submit" value="提交" on

ognl.OgnlException

问题描述: Action 类代码: public class Login2Action implements Action {     // 领域对象     private Users user;     public Users getUsers() {         return user;     }     public void setUsers(Users user) {         this.user = user;     }     - } 错误提示: 警告: Erro

Android开发中与服务器交互时,遇到java.io.IOException: Target host must not be null的问题

当我遇到这个问题的时候,也在网上查找好半天.找到了一个和这个问题很类似的问题——java.lang.IllegalStateException: Target host must not be null 这个里面报的是IllegalStateException,翻译过来是非法状态异常,这个是url的状态,一般来说会是地址不正确(如:在地址的开头缺少http://). 不过,我遇到的是com.lidroid.xutils.exception.HttpException: java.io.IOExc

2&gt;&1 &gt;/dev/null & 与/dev/null 2&gt;&1含义

/dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误 & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到