Интеграция Struts 1.x и тайлов 1.1 - PullRequest
1 голос
/ 12 октября 2010

Я пытаюсь объединить стойки 1.x с плитками 1.1, но у меня возникли проблемы.

Вот фрагмент кода struts-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>
<!-- ..... -->
<!-- ..... -->
        <action path="/listcategories"
  type="com.wrox.begjsp.ch28.bookstore.controller.ListCategoriesAction"
  scope="request">
                <forward name="success" path="list.categories"/>
        </action>
<!-- ..... -->
        <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
        <set-property property="definitions-debug" value="2" />
        <set-property property="definitions-parser-details" value="2" />
        <set-property property="definitions-parser-validate" value="true" />
        </plug-in>

</struts-config>

А вот фрагмент кода tile-defs.xml (на который ссылается Struts-config.xml):

<?xml version="1.0" encoding="UTF-8" ?>

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

<tiles-definitions>

        <definition name="view.abstract" path="/WEB-INF/jsp/layout/standard-layout.jsp">
        <put name="header"      value="/WEB-INF/jsp/tiles/header.jsp" />
        <put name="menu"        value="bookstore.menu" />
        <put name="base"        value="/WEB-INF/jsp/tiles/base.jsp" />
        </definition>

        <definition name="list.categories"  extends="view.abstract">
        <put name="body"        value="/WEB-INF/jsp/tiles/category-list.jsp" />
        </definition>

</tiles-definitions>

Когда com.wrox.begjsp.ch28.bookstore.controller.ListCategoriesAction Действие завершается успешно, мы получаем странное исключение, утверждающее, что атрибут path не может иметь значение, начинающееся с /, то есть «list.categories», что означает, что он не может интерпретировать, что это не путь, а определение, определенное в файлеiles-defs.xml.

Я не гуру плиток, но я думаю, что он должен знать, как интерпретировать это значение!

...