求教一个关于struts2的问题
使用是tomcat6.0 + struts2.0,struts.xml放在了src目录下
首先贴出错误信息如下:
java.lang.NullPointerException
org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
web.xml配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/category/main.jsp</welcome-file>
</welcome-file-list>
然后struts.xml配置如下:
<struts>
<include file="struts-authorize.xml"/>
<include file="struts-category.xml"/>
<include file="struts-cart.xml"/>
<include file="struts-order.xml"/>
<package name="dang-default" extends="json-default">
</package>
</struts>
其中main.jsp中初始化时使用ajax发送cat.action请求,代码部分如下:
$(function(){
$.get(
"cat.action",
function(data){
$("#left").html(data);
}
);
});
其中cat.action对应struts-category.xml,配置内容如下
<package namespace="/category" name="category-default" extends="dang-default">
<action name="cat" class="dangdang.actions.category.CategoryAction">
<result name="success">/category/category.jsp</result>
</action>
</package>
其中CategoryAction.java代码片段如下
/**
*...
*/
public String execute(){
ICategoryDAO dao=new DCategoryDAO();
cats=dao.findByid(1, true);
return "success";
}
/**
*...
*/
debug这个execute没执行,并且报上述异常,使用tomcat热部署,访问路径如http://localhost:8080/,直接跳转到main.jsp,求高手指教啊。 Struts Tomcat
[解决办法]
没看出来什么问题,帮顶!
[解决办法]
你的错误信息没贴全,在错误信息里面应该可以找到哪行报错了
------解决方案--------------------
你的配置文件名称是struts.xml吗,还有它的位置在src吗
[解决办法]
把后台的错误贴全
[解决办法]
ajax提交的路径不对呀,少了namespace
[解决办法]
你先单独访问!cat.action看能访问到么?
[解决办法]
基本上是struts.xml的问题了
[解决办法]
"cat.action"换成"category/cat.action"试试
[解决办法]
估计还是struts.xml文件的问题!修改简单点试试 路径什么的别搞乱了!
[解决办法]
你配的struts的url为 <url-pattern>/*</url-pattern>
所以就应该把cat.action改为cat
[解决办法]
<struts>
<include file="struts-authorize.xml"/>
<include file="struts-category.xml"/>
<include file="struts-cart.xml"/>
<include file="struts-order.xml"/>
<package name="dang-default" extends="json-default">
</package>
</struts>
在package内配置你在AJAX中调用的Action:CategoryAction
result为
<result type="json"/>
[解决办法]
空指针异常,肯定是某个实例为null,你确定excute()没执行,估计cats为null,所以报错了,在cats=dao.findByid(1, true);之前随便输出一点内容看看有没有执行到。
[解决办法]
重写ActionSupport类的addActionError、addActionMessage、addFieldError方法,打个断点,看看错误信息是啥你就明白了。