1

我正在阅读具有单个字符的 url 参数。它将是YN。我必须写一个条件来检查它是否YN并相应地做一些事情。这是我写的,但似乎不起作用(总是去别的)。网址是

http://www.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>
4

1 回答 1

0

通常请求参数由params拦截器处理。操作配置应将此拦截器包含在堆栈中。如果您没有显式引用此拦截器,defaultStack则使用已包含该params拦截器的 is。您需要的是用于扩展操作的包"struts-default"

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

然后参数将被处理并放入动作属性,您可以通过 OGNL 通过实现 getter 和 setter 访问它们。

另一种方法是通过您的操作来实现ParameterAware接口。注入参数后,它可以从顶部的操作中获得valueStack,您可以通过

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

在为参数属性添加getter之后

Map getParameters(){
  return this.parameters;
}

您可以在此处找到更详细的说明。

您尝试使用#parameters键通过 OGNL 从操作上下文映射中访问请求参数的方式。if访问标签中的参数可能会遇到问题,请参见此处

于 2013-06-08T17:06:59.517 回答