0 0

使用struts的div标签ajax生成的表单无法提交数据10

我使用struts的div标签实现ajax方式提交页面。
主页面div.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Enter first and last name</title>
<s:head theme="ajax" debug="false" />
</head>
<body>


<!-- 要显示页面的 URL -->
<s:url id="news" action="divNews" />
<s:div id="divNews" theme="ajax" href="%{news}" showLoadingText="false" />
</body>
</html>

url触发的action DivNewsAction.java如下:
import java.util.ArrayList;
import java.util.List;

import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;

import com.opensymphony.xwork2.ActionSupport;

@Results(value = { @Result(name = "input", value = "/divNews.jsp") })
public class DivNewsAction extends ActionSupport {

private static final long serialVersionUID = 6560408661223488775L;

private static String[] ALL_NEWS = { "中国将举办2008年奥运会, 开幕式日期 2008年8月8日",
"继水立方后, 又一奥运建筑鸟巢体育馆日前竣工", "嫦娥探月卫星成功发射升空", "神舟六号号宇宙飞船胜利返航",
"中国A股股市超跌反弹", };

private String key;

private List<String> news = new ArrayList<String>();

public String getKey() {
return key;
}

public void setKey(String key) {
this.key = key;
}

public String execute() {

if (key == null)
key = "";

for (String n : ALL_NEWS) {
if (n.contains(key)) {
news.add(n);
}
}

return INPUT;
}

public List<String> getNews() {
return news;
}

public void setNews(List<String> news) {
this.news = news;
}

}

action执行完生成的页面divNews.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Enter first and last name</title>
<s:head theme="ajax" debug="false" />
<style type="text/css">
div,body,td {
font-size: 12px;
}
</style>
</head>
<body>
<%
Thread.sleep(1000);
%>
<div style="padding: 10px; width: 350px; background-color: #E5E5E5;">

<s:iterator value="news">
<s:property /> <br/>
</s:iterator>


<s:div theme="ajax" href="%{news2}" showLoadingText="false"
indicator="indicator" />

<!-- Ajax查询表单 -->
<s:form name="newsActionForm" id="newsActionForm">
<s:textfield name="key" label="关键词" />
<s:submit value="查询新闻" href="%{news2}" formId="newsActionForm"
theme="ajax" targets="divNews" />
</s:form>

</body>
</html>

然后我用生成的表单的textfield里输入字符,按查询新闻后发现textfield里的字符并没有提交到action中的key属性;但是我把s:submit中theme="ajax"属性去掉后可以提交。问题是我必须要用ajax,请问怎么解决?

问题补充:divNews.jsp里的<s:div theme="ajax" href="%{news2}" showLoadingText="false"
indicator="indicator" />要改成<s:url id="news2" action="divNews" />,不过没什么影响,不是这个问题造成的
2012年9月27日 15:39

2个答案 按时间排序 按投票排序

0 0

example

<s:form id="form1">
  <input type="textbox" name="data">
</s:form>

<s:url id="ajaxTest" value="/AjaxTest.action" />

<s:submit type="submit" theme="ajax" href="%{ajaxTest}" formId="form1"/>

doc
http://struts.apache.org/2.0.9/docs/ajax-tags.html#AjaxTags-submitTag

2012年9月27日 18:06
0 0

改为这样:<s:submit type="button" theme="ajax" />
加个type="button"试试

2012年9月27日 16:46

相关推荐

    Struts2的ajax支持

    #### 使用Ajax表单与标签 Struts2为Ajax支持提供了一系列标签,这些标签的设计旨在简化Ajax功能的集成。下面是一些常用的Ajax标签: 1. **div**:此标签用于在页面上生成一个动态更新的div元素,其内容可以从...

    Struts2常用的Ajax标签

    除了基本的`&lt;s:div&gt;`标签外,Struts2还支持其他用于实现Ajax功能的标签,如`&lt;s:submit&gt;`、`&lt;s:textfield&gt;`等,它们同样可以在表单提交、文本输入等场景下启用Ajax行为,进一步提升应用的响应速度和用户友好度。...

    struts2+ajax+jquery

    比如,使用`sj:submit`标签可以直接触发Ajax提交: ```jsp &lt;%@ taglib prefix="sj" uri="/struts/jquery-tags"%&gt; &lt;!-- 表单元素 --&gt; &lt;sj:submit targets="resultDiv" onCompleteTopics="onComplete" /&gt; &lt;div id...

    struts2对AJAX的支持

    可以使用Struts2的AJAX验证功能,实现表单字段的实时验证,无需提交整个表单即可检查输入的有效性。 8. **AJAX分页**: 对于需要分页显示的数据,Struts2 jQuery插件提供了`sj:tabbedpanel`和`sj:datatables`等...

    Struts2之struts2标签库了解和使用案例struts025

    Struts2是一个强大的Java EE应用程序框架,用于...同时,这些标签还提供了丰富的功能,如数据校验、国际化、AJAX支持等,大大提升了开发效率。学习并熟练掌握Struts2标签库的使用,是每个Java Web开发者必备的技能。

    Struts2+ajax+json返回list.docx

    本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`&lt;s:select/&gt;`标签)。 1. **Struts2配置**: 在`struts.xml`配置文件中,我们需要定义一个Action,...

    struts2 标签库 帮助文档

    optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...

    基于Struts 2 Ajax实现的Login应用

    在Web 2.0时代,用户对于Web应用的体验有了更高的要求,传统的表单提交方式已经无法满足用户的即时反馈需求。而Ajax技术的出现则很好地解决了这一问题,通过在后台与服务器进行少量数据交换,从而实现了页面的部分...

    Struts 2整合Ajax开发

    为了实现Ajax请求,我们可以使用Struts 2的内置标签库,特别是`sj:a`(.struts2-jquery-tags)和`s:a`(.struts2-core-tags)这两个标签。`sj:a`是专门为Ajax请求设计的,而`s:a`可以通过设置属性来触发Ajax行为。 ...

    Struts2常用标签总结

    使用Struts2标签的准备\n\n在使用Struts2标签之前,需要进行以下配置:\n\n- **引入标签库**:在JSP页面顶部添加`&lt;%@ taglib uri="/struts-tags" prefix="s"%&gt;`,声明Struts2的标签库。\n- **配置过滤器**:在`web....

    struts2标签详解(收集).pdf

    表单标签如用于创建输入字段,用于提交表单,而非表单标签如生成页面头部信息。 2. 非UI标签:主要服务于数据访问和逻辑控制。流程控制标签如、用于条件判断和流程控制,数据访问标签如用于输出ValueStack中的值,...

    Struts2+API+标签全解+网页说明

    optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...

    Struts2整合jQuery实现Ajax功能

    传统的Web表单提交方式已无法满足这些需求,因此Ajax技术逐渐成为提升用户体验的重要手段之一。本文将详细介绍如何在Struts2框架中整合jQuery来实现Ajax功能,并通过具体示例来展示这一过程。 #### 二、基础知识...

    Struts_2_标签库(文档手册)_Tags-API-CLSW-JSP

    Struts 2标签库包含了大量预定义的标签,这些标签封装了常见的Web页面元素和交互逻辑,如表单控件、数据绑定、条件判断等,可以显著提高开发效率和代码质量。以下是对部分标签的详细介绍: #### `&lt;s:a&gt;` 标签 该...

    重要知识struts2标签详解收集.pdf

    表单标签用于构建表单元素,如 `&lt;s:textfield&gt;` 用于创建文本输入框,`&lt;s:submit&gt;` 用于提交表单。非表单标签则包含其他HTML元素,如 `&lt;s:a&gt;` 用于创建超链接。 2. 非UI标签:这些标签主要处理数据访问和逻辑控制。...

    struts2.0 标签清单

    `&lt;s:generator&gt;` 标签配合`&lt;s:iterator&gt;`使用,用于生成迭代所需的初始数据。 ### 18. `&lt;s:head&gt;` 标签 `&lt;s:head&gt;` 标签用于包含HTML头部信息,如CSS和JS文件的引用。 ### 19. `&lt;s:hidden&gt;` 标签 `&lt;s:hidden&gt;` ...

    struts2标签详解(收集)汇编.pdf

    这只是Struts2标签库中的一部分,实际使用中还有许多其他标签,如`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`、`&lt;s:submit&gt;`等,它们分别用于创建表单、文本输入框、多行文本输入框以及提交按钮。 Struts2的标签...

    struts2.0标签库简介

    Struts2.0是Struts框架的一个重大升级版本,它在继承了Struts1.x的优良特性基础上,引入了大量的新功能和改进,特别是在标签库方面,提供了更为强大、灵活和易于使用的标签集,大大简化了Web应用的开发过程。...

    struts2常用标签总结

    Struts2的标签库不仅限于JSP页面,也可以在Velocity和FreeMarker等模板技术中使用。 1. **Struts2的作用** - **简化视图**:Struts2的标签库提供了主题和模板功能,帮助开发者快速创建美观且结构清晰的视图页面。 ...

Global site tag (gtag.js) - Google Analytics