gpt4 book ai didi

java - 如何将 Struts 2 中的 ajax 操作中的文本字段数据传递到原始调用 .jsp?

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:10 25 4
gpt4 key购买 nike

我不确定该标题的措辞是否正确。让我解释一下我想要做什么:

我有一个带有表单的文件 new.jsp

<s:form id="newdep" name="newdep" theme="simple" action="submitForm" >

此表单中有一个选择框:

<s:select list="apps" name="app" onchange="javascript:show_details();return false;" />

我正在使用 Dojo 进行 ajax,它正在调用:

function show_details() {
dojo.event.topic.publish("show_detail");
}

也在这个表格中我有:

<s:url id="d_url" action="showComp" /> 
<sx:div id="details" href="%{d_url}" listenTopics="show_detail" formId="newdep" showLoadingText=""/>

这会通过 showComp Action 动态调用 comp.jsp

根据“应用程序”选择框中所做的选择,它会显示多个文本字段。

更具体地说,一旦选择了某个应用程序,就会创建特定于该应用程序的 HashMap lstList(在 CompAction - showComp 的操作类中)并显示如下:

<s:iterator value="lstList">   
<s:property value="key" />
&nbsp;&nbsp;&nbsp;
<s:textfield name="value" value=""/> <!-- LINE I'M ASKING ABOUT -->
<s:iterator value="value">
<br>
</s:iterator>

我突出显示了文本字段行,因为我认为这是不对的。基本上,我想做的是:

  1. 让用户从下拉列表中选择一个应用程序。 (完成)
  2. comp.jsp 被调用并显示每个 HashMap + 文本字段中的相关标签。 (完成)
  3. 当用户点击提交按钮时,用户在文本字段中输入的内容将保存到 HashMap 中(不起作用)

此时我应该提到,单击“提交”后,用户将被发送到 results.jsp

从此页面中,我可以轻松访问更大的操作类 FormAction 中的数据。但我不知道如何从 CompAction (再次是 ajax 操作的操作类)访问数据(例如 HashMap )。

所以,4. 从 results.jsp 访问 hashmap 数据(也不起作用)

我的本​​能是使用

<s:property value="%{lstList}" /> 

results.jsp 中,但没有运气。我对 struts 还很陌生,但我正在尽力去感受它。有什么建议吗?

最佳答案

我不确定是否能找到你,但我会尽力提供帮助。看看你的comp.jsp ,特别是您突出显示的行,看起来您正在创建许多具有相同名称的输入:“value”(因为在 <s:textfield /> 中“value”不是充当变量,而是充当简单的名称),每个 HashMap 条目都有一个输入。我建议您查看 comp.jsp 生成的 HTML 代码。也就是说,如果有许多同名字段,这些字段的所有值都将映射为 String[]在行动中。因此,如果您定义 String[]在你的行动中,你将获得所有的值(value)。

好的,但是您还需要名称,我的意思是,您需要输入所有字段的操作名称值。为此,首先,您应该更改您的 comp.jsp ,忘记<s:textfield .../> 并自行生成html代码:

<s:iterator value="lstList">   
<input type="text" name="_<s:property value="key" />" value="<s:property value="value" />" />
<br>
</s:iterator>

请注意,所有字段名称均以“_”开头。

然后,在操作中,您应该访问请求并获取请求中所有参数的列表,获取以“_”开头的参数,并使用其名称和值自行构建 HashMap 。

关于java - 如何将 Struts 2 中的 ajax 操作中的文本字段数据传递到原始调用 .jsp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com