java.lang.IllegalArgumentException: Path userLogin.jsp does not start with a

struts异常 does not start with a "/" character
2008-10-10 17:43

如果你也遇到以下问题:
java.lang.IllegalArgumentException: Path index.jsp does not start with a "/" 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" >
<forward name="success" path="/tran.jsp" />

<input="logon.jsp">  ==>input="/logon.jsp">   
   path="admin/news"     ==>path="/admin/news"
<forward name="success" path="tran.jsp" /> ==><forward name="success" path="/tran.jsp" />

有时,不一定是配置文件出的错。看看你的Action中的execute()方法,特别是retrun mapping.findForward("XXXXXXXXXXX"),
我今天就错在这里了,本来的意思是return mapping.findForward("editnews");
可我却写成return new ActionForward("newslist");其实这句也对(如放在删除或者添加后面的 跳转 ),只不过放在这里就不对了,因为我的"editnews"在配置文件里已经定义过别名了<forward name="editnews" path="/admin/newsedit.jsp" />

============================
初学struts有些问题要注意!
我在这里说一些比较细的地方,都是我遇到过的,其他方面网上书上都说得很详细了。
struts-config.xml文件,这是很重要的地方,成败的关键啊!!

一般的样式就是这样,红色部分要注意
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
<data-sources />
<form-beans >
    <form-bean name="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 文件名字 does not start with a "/" character 记得加“/”这个,很容易就忘记,我是连续忘记了两次,

posted @ 2009-10-26 22:09  杨子宜  阅读(1162)  评论(0编辑  收藏  举报