当前位置: 代码迷 >> Java Web开发 >> struts2 getText() 报空指针异常
  详细解决方案

struts2 getText() 报空指针异常

热度:9130   发布时间:2013-02-25 21:18:11.0
struts2 getText() 报空指针错误
msg = getText("error.email.exist"); //此行报错
return "input";

Java code
java.lang.NullPointerException    at com.opensymphony.xwork2.util.LocalizedTextUtil.createMissesKey(LocalizedTextUtil.java:240)    at com.opensymphony.xwork2.util.LocalizedTextUtil.findResourceBundle(LocalizedTextUtil.java:219)    at com.opensymphony.xwork2.util.LocalizedTextUtil.getMessage(LocalizedTextUtil.java:604)    at com.opensymphony.xwork2.util.LocalizedTextUtil.findMessage(LocalizedTextUtil.java:645)    at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:360)    at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:293)    at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:173)    at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:88)    at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:71)    at com.eu3c.struts.account.LoginAction.execute(LoginAction.java:188)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)……


------解决方案--------------------------------------------------------
Java code
getText重名了吧。 或者说你没有定义text 的get set 方法吧。不行的话 你把你的代码 粘出来 瞅瞅。
------解决方案--------------------------------------------------------
getText("error.email.exist"); 这段方法帖出来看看撒
------解决方案--------------------------------------------------------


楼上几位。根本没说到边!

ActionSupport里面的方法 getText();

setTip(getText("operate.success"));

getText("key");



这个是在做国际化的时候用的 

在资源文件中如果没有相应的 key : value 那么是会输出原文的!
上面的情况结果

 msg = "error.mail.exist"

错误的原因不在这里: 
1:
 你的资源文件: 

2: 有没设置好 在strust.xml里面配的 

如 <constant name="struts.custom.i18n.resources" value="message" />








------解决方案--------------------------------------------------------
消息文件内error.email.exist找不到。
还有可能是消息配置文件路径不对。
还有可能是消息配置文件文件名不对。你是带Locale的。应该在文件名最后加zh_cn等。
看看你文件内部有没有用全角的=等等。
------解决方案--------------------------------------------------------
你直接在action中用 this.getText("");就可以获取到了
------解决方案--------------------------------------------------------
ding 六楼

------解决方案--------------------------------------------------------
探讨

引用:
消息文件内error.email.exist找不到。
还有可能是消息配置文件路径不对。
还有可能是消息配置文件文件名不对。你是带Locale的。应该在文件名最后加zh_cn等。
看看你文件内部有没有用全角的=等等。


问一下 你是带Locale的 这一句什么意思

------解决方案--------------------------------------------------------
如果不带Locate表示默认messageResource
------解决方案--------------------------------------------------------
debug、。。。。。
------解决方案--------------------------------------------------------
1.<constant name="struts.custom.il8n.resources" value="ApplicationResources"></constant>
直接放在src下。
2.在action中直接调用:
Java code
    addFieldError("属性", this.getText("资源文件中的key",new String[]{"参数"}));    没有参数的话直接写key。
  相关解决方案