2013-04-29 3 views
0

Хорошо, я просто попробовал этот простой пример: http://www.mkyong.com/struts2/struts-2-property-tag-example/. Это не что иное, как просто установка свойства в предварительном действии и отображение этого в jsp. Это сработало для меня, никаких проблем здесь.Значения свойств Struts2 установлены, но отображаются пустые

Я просто попытался добавить перехватчик, который перехватывает все запросы к действию и ссылается на новый стек перехватчика (стек по умолчанию + новый перехватчик), конфигурацию действия. Затем началась проблема отображения пустых свойств. Свойства, заданные в классе действия, больше недоступны в jsp. Любая идея почему?

Вот мой конфиг:

<action name="propertyTagAction" class="com.mkyong.common.action.PropertyTagAction" > 
    <result name="success">pages/property.jsp</result> 
    <interceptor-ref name="customStack"> 
    <param name="operationMode">STORE</param> 
    </interceptor-ref> 
</action> 

<interceptors> 
    <interceptor name="customInterceptor" class="..."> 
    <param name="operationMode">STORE</param> 
    </interceptor> 
    <interceptor-stack name="customStack"> 
    <interceptor-ref name="customInterceptor"></interceptor-ref> 
    <interceptor-ref name="defaultStack"></interceptor-ref> 
    </interceptor-stack> 
</interceptors> 
+0

Не могли бы вы показать код для 'customInterceptor'. –

+0

Ну, это будет содержать какой-то код, который нельзя использовать здесь. В принципе, он содержит метод перехвата, который будет проверять доступ пользователя. Если проверка завершилась неудачно, сообщение об ошибке проверки будет добавлено в перехватчик хранилища сообщений (для последующего использования). В противном случае действие будет вызываться с помощью: actionInvocation.invoke(). Что вы ожидаете увидеть там, что, по вашему мнению, вызвало бы это? – mystarrocks

+1

Кто знает, но, видимо, это как-то связано с вашим перехватчиком или конфигурацией. Если вы не опубликуете минимально неудачный пример, вам будет сложно помочь. –

ответ

1

Попробуйте изменить этот

<interceptor-ref name="customStack"> 
    <param name="operationMode">STORE</param> 
</interceptor-ref> 

к этому

<interceptor-ref name="customStack"> 
    <param name="customInterceptor.operationMode">STORE</param> 
</interceptor-ref> 

Из документации, Interceptor Parameter Overriding, пример n.2:

Синтаксис выглядит следующим образом:

<interceptor-name>.<parameter-name> 
+0

Я бы попробовал это и дал понять людям, если это сработает. – mystarrocks

+1

Это была длинная попытка ... = D –

+0

Ха-ха, конечно! – mystarrocks

Смежные вопросы