0

私の struts-config.xml には、タイル定義を指すいくつかの転送アクションがあります。"/"しかし、指定されたとおりにパスを取得し、tiles-definition.xml に向けられず、パスの表示が文字 で始まっていません

私の 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="feelSafeForm" type="com.feelsafe.struts.form.FeelSafeForm" />
</form-beans>
<global-exceptions />
<global-forwards >
   <forward name="login1" path="/feelSafe.do?do=login" />
   <forward name="admin" path="/feelSafe.do?do=admin1" />
</global-forwards>
<action-mappings >
<action
  attribute="feelSafeForm"
  input="/index.jsp"
  name="feelSafeForm"
  parameter="do"
  path="/feelSafe"
  scope="request"
  type="com.feelsafe1.struts.action.FeelSafeAction">

  <forward name="adminmainpage" path="feelsafe.adminmainpage" />
  <forward name="login" path="feelsafe.login" />

 </action>

</action-mappings>

<message-resources parameter="com.feelsafe.struts.ApplicationResources" />

<plug-in className="org.apache.struts.tiles.TilesPlugin">
   <set-property property="definitions-parser-validate" value="true" />
   <set-property property="moduleAware" value="true" />
   <set-property property="definitions-config" value="/WEB-INF/tiles-definition.xml" />
</plug-in>

</struts-config>

tiles-definition.xml は次のとおりです。

<!DOCTYPE tiles-definitions PUBLIC
   "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
   "http://struts.apache.org/dtds/tiles-config_1_1.dtd">     
<component-definitions>

<definition name="feelsafe.common" path="/feelsafeLayout/layout.jsp">
   <put name="title" type="string" value="FeelSafe Hospital"/>
   <put name="header1" value="/feelsafeLayout/header.jsp"/>
   <put name="footer1" value="/feelsafeLayout/footer.jsp"/>
</definition>

<definition name="feelsafe.login" extends="feelsafe.common">
   <put name="body1" value="/feelsafeJspFiles/login.jsp"/>
</definition> 

<definition name="feelsafe.admin" extends="feelsafe.common">
   <put name="body1" value="/feelsafeAdminJspFiles/adminlogin.jsp"/>
</definition>

</component-definitions>  

ログインが呼び出されると、制御は転送タグに移動し、次のように500 Error言います:

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: 名前 login1 の例外転送: javax.servlet.ServletException: java.lang.IllegalArgumentException: パス feelsafe.login が " で始まらない/" キャラクター

4

1 に答える 1

1

web.xml のアクション サーブレットの init パラメータからこのスニペットを削除すると、同じエラーが発生します。

    ...
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    ...
    <init-param>
        <param-name>chainConfig</param-name>
        <param-value>org/apache/struts/tiles/chain-config.xml</param-value>
    </init-param>

したがって、1.1 などの古いバージョンの dtd を使用する場合は、この init-param to action サーブレットを web.xml ファイルに追加してみてください。1.3でテストしました

于 2014-10-23T09:19:23.377 に答える