2

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!**

4

1 回答 1

1

发生这种情况是因为参数名称中不接受空格。您可以更改, 但作为文档状态的acceptParamNames参数ParametersInterceptor

acceptParamNames - 以逗号分隔的正则表达式列表,用于描述可接受参数名称的白名单。不要更改默认值,除非您知道自己在做什么涉及安全问题

所以我建议你去掉参数名称中的空格。

于 2013-03-20T23:21:45.857 回答