struts-config.xml中标签path属性
一、struts-config.xml中标签path属性传多个参数
在struts-config.xml中配置<forward>标签时候,通过地址传递参数,想当然的把参数加在后面:
配置信息如下:(这是错误的)
<forwardname="editItemFinish"path="/user.do?method=init&forward=edit"></forward>
结果提示下列信息:
原先以为<forward>不能传递多个参数,后来百度了一下。发现是可以的。
解决方法相当的简单:
只需将&符号用&来代替即可:
正确代码如下:
<forwardname="editItemFinish"path="/user.do?method=init&forward=edit"></forward>
二、服务报异常:java.lang.IllegalArgumentException:PathuserLogin.jspdoesnotstartwitha。。。。
struts异常doesnotstartwitha"/"character
2008-10-1017:43
如果你也遇到以下问题:
java.lang.IllegalArgumentException:Pathindex.jspdoesnotstartwitha"/"character
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
model.MyActionServlet.process(MyActionServlet.java:22)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
那么,请注意了。你的struts-config.xml文件一定是出错了,就仔细看看<action-mappings/>吧!
特别是<action>里面
path="/admin/news"
<input="/xxx.jsp">
<forwardname="success"path="/tran.jsp"/>
如<input="logon.jsp"> ==>input="/logon.jsp">
path="admin/news"==>path="/admin/news"
<forwardname="success"path="tran.jsp"/>==><forwardname="success"path="/tran.jsp"/>
有时,不一定是配置文件出的错。看看你的Action中的execute()方法,特别是retrunmapping.findForward("XXXXXXXXXXX"),
我今天就错在这里了,本来的意思是returnmapping.findForward("editnews");
可我却写成returnnewActionForward("newslist");其实这句也对(如放在删除或者添加后面的跳转),只不过放在这里就不对了,因为我的"editnews"在配置文件里已经定义过别名了<forwardname="editnews"path="/admin/newsedit.jsp"/>
我在这里说一些比较细的地方,都是我遇到过的,其他方面网上书上都说得很详细了。
struts-config.xml文件,这是很重要的地方,成败的关键啊!!
一般的样式就是这样,红色部分要注意
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN""http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources/>
<form-beans>
<form-beanname="userLoginForm"type="com.yourcompany.struts.form.UserLoginForm"/>
</form-beans>
<global-exceptions/>
<global-forwards/>
<action-mappings>
<action
------虽然在Eclipse开发当中,顺序不是这样,但是出问题时可以考虑先改这里的顺序,我试过在这里改了以后问题解决了。
attribute="userLoginForm"
input="/userLogin.jsp"
name="userLoginForm"
path="/userLogin"
scope="request"
type="com.yourcompany.struts.action.UserLoginAction"
validate="false">
-------“/”这个也要注意,我在网上找错的时候,发现有不少也有这个错误Path文件名字doesnotstartwitha"/"character记得加“/”这个,很容易就忘记,我是连续忘记了两次,
三、
如在web.xml中这样配置路径
。。。
<init-param>
<param-name>config/module/xtgl</param-name>
<param-value>
/WEB-INF/config/struts/struts-xtgl.xml
</param-value>
</init-param>。。。
注意红色标注,如果我需要从目录module下访问,需要在struts配置文件中这样配置,红色
<actionpath="/bjgl/printQuotationInfo"
type="com.crls.mboa.kcgl.module.quotationmanage.action.QuotationManageAction"
parameter="findQuotationInfo">
<forwardname="success"path="/bjgl/quotationprint.jsp"/>
<forwardname="failed"path="/../resources/error.jsp"/>
</action>