读书人

求教一个关于struts2的有关问题

发布时间: 2013-05-02 09:39:29 作者: rapoo

求教一个关于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看能访问到么?
[解决办法]
引用:
Quote: 引用:

你先单独访问!cat.action看能访问到么?
直接抛上面那个500异常,后台没有异常信息。
基本上是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方法,打个断点,看看错误信息是啥你就明白了。

读书人网 >Java Web开发

热点推荐