2013-06-08 6 views
1

단일 문자가있는 url 매개 변수를 읽습니다. Y 또는 N 중 하나입니다. 나는 그것이 Y 또는 N인지 확인하고 그에 따라 뭔가를 할 조건을 써야합니다. 이것은 내가 쓴 것이지만 작동하지 않는 것입니다 (항상 다른 사람에게로갑니다). URL은 Struts 2에서 URL 요청 매개 변수의 단일 문자를 비교하는 방법

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> 

제가 또한 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에서 구성해야하는 것은 무엇입니까? 설명 해주십시오. 나는 struts2를 알고있다. –

답변

0

보통 파라미터가 params 인터셉터에 의해 처리 된 요청이 포함

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

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

</s:if> 
<s:else> 

</s:else> 

시도이다. 조치 구성에는이 인터셉터가 스택에 포함되어야합니다. 이 인터셉터를 명시 적으로 참조하지 않으면 params 인터셉터가 이미 포함 된 defaultStack이 사용됩니다. 필요한 것은 조치를 취할 패키지를 "struts-default"으로 확장하는 것입니다. 그런 다음 매개 변수를 처리하고 작업에 넣어지게된다

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

는 getter와 setter를 구현하여 OGNL을 통해 그들을 액세스 할 수있는 곳, 속성.

또 다른 방법은 수행하여 ParameterAware을 구현하는 것입니다. 매개 변수를 주입 후에는 valueStack의 상단에 작업에서 사용할 수 있었다 당신이 here을 찾을 수있는 매개 변수를

Map getParameters(){ 
    return this.parameters; 
} 

더 상세한 설명 속성 당신은 게터를 추가 한 후

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

를 통해 매개 변수를 얻을 수 .

#parameters 키를 사용하여 OGNL을 통해 조치 컨텍스트 맵에서 요청 매개 변수에 액세스하는 방식. if 태그의 매개 변수에 액세스하는 데 문제가있을 수 있습니다 (here 참조).

+0

가능한 경우이 대답을 수락하고 upvote해야합니다. –