在Struts 2中抛出NullPointerException的java getText()方法
我有一个package.properties
文件,其中包含
email.domain=localhost:8080
现在,从同一个包中的一个类调用getText("email.domain")
,但得到以下错误:
stacktrace:
System.out.println("http://" + getText("email.domain") + "/ReportContent.action");
java.lang.NullPointerException
at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:361)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:208)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:123)
at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:103)
如何解决这个问题呢
# 1 楼答案
下面一个是从Maven repository创建的典型Struts2项目
我所有的动作类都将在com上提供。xxx。控制器软件包
要使getText(“xxxxxx”)方法工作,需要进行以下配置
ActionSupport
类struts.properties
和XXXXX.properties
文件放在你放置struts的地方。xml检查您在项目中正确配置的所有这些配置
# 2 楼答案
您只能在映射到当前线程中执行的请求的操作的上下文中调用
getText
如果要加载属性,可以使用
Properties
类和方法load()
# 3 楼答案
ActionSupport.getText()
最终打电话给ActionContext.getContext().getValueStack()
。你的空指针是因为ActionContext.getContext()
是空的。这可能发生在你自己创建ActionSupport对象时。。。也许通过做ActionSupport myActionSupportObj = new ActionSupport()
之类的事情;假设struts2安装的其余部分已经完成,获得一个工作ActionSupport对象的适当方法是重写AbstractInterceptor类