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

Posted

技术标签:

【中文标题】如何将文本字段数据从 Struts 2 中的 ajax 操作传递到原始调用 .jsp?【英文标题】:How to pass textfield data from ajax action in Struts 2 to original calling .jsp? 【发布时间】:2012-06-12 20:44:39 【问题描述】:

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

我有一个带有表单的文件 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 即时调用comp.jsp

它会根据“app”选择框中的选择显示许多文本字段。

更具体地说,一旦选择了一个应用程序,就会创建一个特定于该应用程序的哈希图 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> 

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

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

此时我应该提一下,点击提交后,用户会被发送到results.jsp

从这个页面我可以很容易地访问更大的动作类的数据,FormAction。但我不知道如何从CompAction 访问数据(例如哈希图)(再次,ajax 动作的动作类)。

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

我的本​​能是使用

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于如何将文本字段数据从 Struts 2 中的 ajax 操作传递到原始调用 .jsp?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 struts2 文本字段标签中放置占位符?

如何从另一种方法访问 tableviewCell 中的文本字段

当用户以编程方式单击swift ios中的删除按钮时,如何将光标从一个文本字段自动移动到另一个文本字段?

如何从目标c中的uitableViewCell取回文本字段数据?

如何将 MongoDB 中的属性从文本类型转换为日期类型?

如何限制 Swift 中文本字段中的数字?