-
使用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个答案 按时间排序 按投票排序
-
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-submitTag2012年9月27日 18:06
-
改为这样:<s:submit type="button" theme="ajax" />
加个type="button"试试2012年9月27日 16:46
相关推荐
#### 使用Ajax表单与标签 Struts2为Ajax支持提供了一系列标签,这些标签的设计旨在简化Ajax功能的集成。下面是一些常用的Ajax标签: 1. **div**:此标签用于在页面上生成一个动态更新的div元素,其内容可以从...
除了基本的`<s:div>`标签外,Struts2还支持其他用于实现Ajax功能的标签,如`<s:submit>`、`<s:textfield>`等,它们同样可以在表单提交、文本输入等场景下启用Ajax行为,进一步提升应用的响应速度和用户友好度。...
比如,使用`sj:submit`标签可以直接触发Ajax提交: ```jsp <%@ taglib prefix="sj" uri="/struts/jquery-tags"%> <!-- 表单元素 --> <sj:submit targets="resultDiv" onCompleteTopics="onComplete" /> <div id...
可以使用Struts2的AJAX验证功能,实现表单字段的实时验证,无需提交整个表单即可检查输入的有效性。 8. **AJAX分页**: 对于需要分页显示的数据,Struts2 jQuery插件提供了`sj:tabbedpanel`和`sj:datatables`等...
Struts2是一个强大的Java EE应用程序框架,用于...同时,这些标签还提供了丰富的功能,如数据校验、国际化、AJAX支持等,大大提升了开发效率。学习并熟练掌握Struts2标签库的使用,是每个Java Web开发者必备的技能。
本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`<s:select/>`标签)。 1. **Struts2配置**: 在`struts.xml`配置文件中,我们需要定义一个Action,...
optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...
在Web 2.0时代,用户对于Web应用的体验有了更高的要求,传统的表单提交方式已经无法满足用户的即时反馈需求。而Ajax技术的出现则很好地解决了这一问题,通过在后台与服务器进行少量数据交换,从而实现了页面的部分...
为了实现Ajax请求,我们可以使用Struts 2的内置标签库,特别是`sj:a`(.struts2-jquery-tags)和`s:a`(.struts2-core-tags)这两个标签。`sj:a`是专门为Ajax请求设计的,而`s:a`可以通过设置属性来触发Ajax行为。 ...
使用Struts2标签的准备\n\n在使用Struts2标签之前,需要进行以下配置:\n\n- **引入标签库**:在JSP页面顶部添加`<%@ taglib uri="/struts-tags" prefix="s"%>`,声明Struts2的标签库。\n- **配置过滤器**:在`web....
表单标签如用于创建输入字段,用于提交表单,而非表单标签如生成页面头部信息。 2. 非UI标签:主要服务于数据访问和逻辑控制。流程控制标签如、用于条件判断和流程控制,数据访问标签如用于输出ValueStack中的值,...
optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...
传统的Web表单提交方式已无法满足这些需求,因此Ajax技术逐渐成为提升用户体验的重要手段之一。本文将详细介绍如何在Struts2框架中整合jQuery来实现Ajax功能,并通过具体示例来展示这一过程。 #### 二、基础知识...
Struts 2标签库包含了大量预定义的标签,这些标签封装了常见的Web页面元素和交互逻辑,如表单控件、数据绑定、条件判断等,可以显著提高开发效率和代码质量。以下是对部分标签的详细介绍: #### `<s:a>` 标签 该...
表单标签用于构建表单元素,如 `<s:textfield>` 用于创建文本输入框,`<s:submit>` 用于提交表单。非表单标签则包含其他HTML元素,如 `<s:a>` 用于创建超链接。 2. 非UI标签:这些标签主要处理数据访问和逻辑控制。...
`<s:generator>` 标签配合`<s:iterator>`使用,用于生成迭代所需的初始数据。 ### 18. `<s:head>` 标签 `<s:head>` 标签用于包含HTML头部信息,如CSS和JS文件的引用。 ### 19. `<s:hidden>` 标签 `<s:hidden>` ...
这只是Struts2标签库中的一部分,实际使用中还有许多其他标签,如`<s:form>`、`<s:textfield>`、`<s:textarea>`、`<s:submit>`等,它们分别用于创建表单、文本输入框、多行文本输入框以及提交按钮。 Struts2的标签...
Struts2.0是Struts框架的一个重大升级版本,它在继承了Struts1.x的优良特性基础上,引入了大量的新功能和改进,特别是在标签库方面,提供了更为强大、灵活和易于使用的标签集,大大简化了Web应用的开发过程。...
Struts2的标签库不仅限于JSP页面,也可以在Velocity和FreeMarker等模板技术中使用。 1. **Struts2的作用** - **简化视图**:Struts2的标签库提供了主题和模板功能,帮助开发者快速创建美观且结构清晰的视图页面。 ...