选中复选框时,文本字段如何显示存储在“paramsText”中的值?

How could the text field show the value stored in the `paramsText` when the checkbox is checked?

提问人:Min Chen 提问时间:7/16/2021 最后编辑:Roman CMin Chen 更新时间:7/16/2021 访问量:50

问:

我在 Struts2 中有一个:HashMap<String, String>

@In(scope=ScopeType.CONVERSATION)
@Out(scope=ScopeType.CONVERSATION)
private Map<String, String> paramMap;

和 a :String[]

@In(scope=ScopeType.CONVERSATION)
@Out(scope=ScopeType.CONVERSATION)
private String[] paramsText;

用于存储 的 ,在我的 jsp 中,我用于显示 和 :paramsTextvalueparamMap<s: iterator>paramMapparamsText

<s:iterator value="paramMap" var="param" status="paramsStatus">
<tr>
 <td>
 <input type="checkbox" key_id="<s:property value="#paramsStatus.index"/>" name="params" value="<s:property value="#param.key"/>"
 <s:iterator value="params" var="app">
  <s:if test="#app==#param.key">
  checked
  </s:if>
 </s:iterator>/>
 &emsp;<s:property value="#param.value"/>
 </td>

 <td>
 <input type="text" text_id="<s:property value="#paramsStatus.index"/>" name="paramsText" />
 </td>
</tr>

选中复选框时,文本字段如何显示存储在 中的值?我正在考虑属性,我应该如何指定它?paramsTextvalue

javascript html jsp struts2 struts-tags

评论


答:

1赞 Roman C 7/16/2021 #1

迭代时可以得到的值。您需要使用 <s:set> 标记将值存储在值堆栈中。paramsText

<s:iterator value="params" var="app">
  <s:if test="#app==#param.key">
  checked
  <s:set var="paramsText" value="#param.value"/>
  </s:if>
</s:iterator>/>

<input type="text" text_id="<s:property value="#paramsStatus.index"/>" name="paramsText" value="<s:property value="#paramsText"/>">

评论

1赞 Min Chen 7/16/2021
非常感谢您的指导,这解决了问题,但是如果不存储 of ,而是存储用户输入的文本,在这种情况下如何显示值呢?paramsTextvalueHashMap
0赞 Roman C 7/16/2021
您可以阻止用户通过设置属性或使用输入类型来修改值。readonlyhidden
0赞 Min Chen 7/16/2021
实际上,我的逻辑是:如果用户不输入文本,则将存储 的,如果用户输入一些文本,则将存储文本而不是valueHashMapvalue