РЕДАКТИРОВАТЬ: Я полагаю, что это свойство SpringBeanPreparerFactory элемента tileConfigurer отвечает за то, чтобы убедиться, что средства подготовки доступны для плиток ... но похоже, что оно может не работать.По умолчанию для tileConfigurer установлено значение «BasicPreparerFactory», и я вижу ссылку на это в журналах сервера. Я думаю, что, возможно, каким-то образом это свойство установлено неправильно, и вместо него используется значение по умолчанию BasicPreparerFactor.
Я в полном недоумении с этим ... ЛЮБЫЕ мысли или советы будут оценены.
Я просто пытаюсь использовать Tiles ViewPreparer, который определен в моей конфигурации Spring ... этоЭто!Но по какой-либо причине метод execute для моего ViewPreparer просто никогда не вызывается.ViewPreparer создается Spring, и моя плитка обрабатывается, но средство подготовки никогда не выполняется.Как будто есть неработающая связь между Tiles и Spring, которая должна быть там ... Я говорю, что я использую «testPreparer» в файле tile.xml, который является компонентом, определенным в «applicationContext.xml», но плитки ведут себя как яне определил подготовитель вообще. Вот хорошее описание того, что я по сути пытаюсь сделать.
/ WEB-INF /iles.xml:
<tiles-definitions>
<definition name="test.tile" template="testtile.jsp" preparer="testPreparer">
</definition>
</tiles-definitions>
applicationContext.xml
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
<property name="preparerFactoryClass"
value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory" />
</bean>
<bean id="testPreparer" class="TestPreparer"></bean>
TestPreparer.java
import org.apache.tiles.AttributeContext;
import org.apache.tiles.context.TilesRequestContext;
import org.apache.tiles.preparer.PreparerException;
import org.apache.tiles.preparer.ViewPreparer;
public class TestPreparer implements ViewPreparer {
public void execute(TilesRequestContext arg0, AttributeContext arg1)
throws PreparerException {
System.out.println("I executed");
}
}
struts.xml:
<package name="apps-default" extends="struts-default"
abstract="true">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<interceptors>
...
</interceptors>
<default-interceptor-ref name="defaultAppStack"/>
<package name="testPackage" extends="apps-default" namespace="/test">
<action name="create" class="testAction" method="create">
<result type="tiles">test.tile</result>
</action>
</package>