struts2 TreeMap:没有出现空格的键

时间:2013-03-20 17:31:39

标签: struts2 treemap xwork

JSP代码:

   <s:iterator value="#currentRequisitionGroup.plFldWrap.allPFields" var="pMap" status="hStatus">
    <s:iterator value="#pMap.value.paramMdlList" var="paramModel" status="fStat">
    <li>
     <label>
        <s:property value="#paramModel.parameterName" />

     </label> 
    <s:set var="cEdit" value="%{#paramModel.isEditable}"> </s:set>  

    <s:if test="%{#cEdit == true}">
        <s:textfield id="paramId_%{#paramModel.parameterId}" name="rqPGPrmMdl.rqGrp[%     {#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].prmValue"/>
    </s:if>
    <s:else>
         <s:textfield id="paramId_%{#paramModel.parameterId}" name="rqPGPrmMdl.rqGrp[%  {#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].prmValue" readonly="true"/>
    </s:else>    



</li> 
<s:hidden id="prmId_%{#paramModel.parameterId}" name="rqPGPrmMdl.rqGrp[%{#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].parameterId"></s:hidden> 
<s:hidden id="paramName_%{#paramModel.parameterId}" name="rqPGPrmMdl.rqGrp[%{#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].parameterName"></s:hidden>
<s:hidden id="pGId_%{#paramModel.parameterId}"  name="rqPGPrmMdl.rqGrp[%{#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].parameterGroupId"></s:hidden> 
<s:hidden id="seqNo_%{#paramModel.parameterId}" name="rqPGPrmMdl.rqGrp[%{#cGStat.index}].plFldWrap.allPFields['%{(#pMap.key)}'].paramMdlList[%{#fStat.index}].sequenceNumber"></s:hidden>

</s:iterator>
    </s:iterator>

问题是某些值不会出现在操作中。 调查到现在表明,如果相应的html 输入在allPFields的键中有空格,则该值不会出现在操作中。      <input id="prmId_30" type="hidden" value="30" name="rqPGPrmMdl.rqGrp[1].plFldWrap.allPFields['Emp System'].paramMdlList[0].parameterId">

但是,如果相应的html输入在allPFields的键中没有空格,则该值将显示在操作中。    <input id="prmId_46" type="hidden" value="30" name="rqPGPrmMdl.rqGrp[1].plFldWrap.allPFields['Emp'].paramMdlList[0].parameterId">

以下是日志所说的内容: xwork2.interceptor.ParametersInterceptor - Parameter [rqPGPrmMdl.rqGrp[1].plFldWrap.allPFields['Emp System'].paramMdlList[0].parameterId] **didn't match acceptedPattern pattern!**

1 个答案:

答案 0 :(得分:1)

这是因为参数名称中不接受空格。您可以更改acceptParamNames的{​​{1}}参数,但文档说明

  

acceptParamNames - 用逗号分隔的正则表达式列表,用于描述接受的参数名称的白名单。 除非您知道自己在安全方面的影响,否则不要更改默认值

所以我建议你摆脱参数名称中的空格。