2013-06-08 4 views
1

Я читаю параметр url, который имеет один символ. Это будет либо Y, либо N. Я должен написать условие, чтобы проверить, Y или N и сделать что-то соответствующим образом. Это то, что я написал, но, похоже, не работает (всегда идет в другое место). СсылкаКак сравнить один символ из параметра запроса url в Struts 2

http://wwww.helloworld.com/showInfo?thecountry=us&theconditionTypeInUrl=Y

<s:set var="theUrl" value="%{#parameters.theconditionTypeInUrl}" /> 
    <s:if test="%{#theUrl == 'Y'}"> 

    </s:if> 
    <s:else> 

    </s:else> 

Я также попытался

<s:set var="theUrl" value='%{#parameters.theconditionTypeInUrl}' /> 

    <s:if test='%{#theUrl == "Y"}'> 

</s:if> 
<s:else> 

</s:else> 

struts.xml содержит

<action name="showInfo" class="showInfoAction"> 
    <result name="success" type="tiles">dis.Info</result> 
    <result name="no_results" type="tiles">dis.noInfo</result> 
</action> 
+0

Опубликовать 'struts.xml'. –

+0

попробуйте использовать , также убедитесь, что перехватчик params настроен в вашем стеке перехватчика по умолчанию –

+0

Что я должен настроить в intercetor params. Пожалуйста, объясни. Я знаю, что это struts2. –

ответ

0

Обычно параметры запроса обрабатываются params перехватчика. Конфигурация действия должна иметь этот перехватчик, включенный в стек. Если вы не ссылаетесь на этот перехватчик явно, используется defaultStack, который уже содержит перехватчик params. Вам нужен пакет для расширения действия "struts-default".

<package name="default" namespace="/" extends="struts-default"> 

Затем параметры будут обработаны и положить к действию атрибутов, где вы могли бы получить доступ к ним через OGNL путем внедрения и геттер сеттер.

Другой способ - реализовать ParameterAware вашим действием. После введения параметров она может быть доступна из действий, который находится на вершине valueStack, и вы можете получить параметры с помощью

<s:if test="parameters['theconditionTypeInUrl'] == 'Y'"> 

после добавления поглотителя для параметров атрибута

Map getParameters(){ 
    return this.parameters; 
} 

Более подробно объяснения можно найти here ,

Способ, которым вы пытаетесь получить параметры запроса доступа из контекстной карты действия через OGNL с помощью #parameters. Там могут быть проблемы с доступом к параметрам в теге if, см. here.

+0

Вы должны принять и перенести этот ответ, когда это возможно. –

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

  • Нет связанных вопросов^_^