这个例子是用extJs表单提交和struts2结合的例子。
首先,要进行编写js文件,js中文件建立一个button按钮,然后单击的时候响应下面的事件,此处就省略对于button的编写。响应的函数如下
function addProgramItem() {
firstWindow.show(); // 显示窗口
}
//-------------添加费率的 -------------------------
var firstWindow = new Ext.Window({
title : '<span class="commoncss">添加费率表单<span>', // 窗口标题
layout : 'fit', // 设置窗口布局模式
width : 400, // 窗口宽度
height : 300, // 窗口高度
closable : false, // 是否可关闭
collapsible : true, // 是否可收缩
maximizable : true, // 设置是否可以最大化
border : false, // 边框线设置
constrain : true, // 设置窗口是否可以溢出父容器
animateTarget : Ext.getBody(),
pageY : 20, // 页面定位Y坐标
pageX : document.body.clientWidth / 2 - 600 / 2, // 页面定位X坐标
items : [myForm], // 嵌入的表单面板
buttons : [{
text : '保 存',
// iconCls : 'acceptIcon',
handler : function() {
submitTheForm();
}
}, {
text : '重 置',
// iconCls : 'tbar_synchronizeIcon',
handler : function() {
myForm.getForm().reset();
}
}, {
text : '关 闭',
// iconCls : 'deleteIcon',
handler : function() {
firstWindow.hide();
}
}]
});
var updateForm = new Ext.form.FormPanel({
collapsible : false,
border : true,
labelWidth: 75, // label settings here cascade unless overridden
frame:true,
bodyStyle:'padding:5px 5px 0',
width: 350,
buttonAlign : 'center',
defaults: {width: 230},
defaultType: 'textfield',
items: [
{
fieldLabel : '方案ID',
name : 'program_id',
readOnly : true,
fieldClass : 'x-custom-field-disabled',
xtype : 'textfield', // 设置为数字输入框类型
maxLength:40
},{
fieldLabel: '方案名称',
name: 'program_name',
allowBlank:false,
maxLength:40
},{
fieldLabel: '计费模式',
name: 'compute_model',
allowBlank:false,
maxLength:2
}, {
xtype:'textarea',
fieldLabel: '方案描述',
name:'description',
maxLength:255
},{
fieldLabel:'方案状态',
name:'tariff_program_state',
allowBlank:false,
maxLength:2,
value:'00'
},{
fieldLabel:'操作人员',
name:'operator',
allowBlank:false,
maxLength:20
},{
xtype:'datefield',
fieldLabel :'操作时间',
name:'op_time',
allowBlank:false,
format:'Y-m-d'
}]
});
/**
* 表单提交(表单自带Ajax提交)
*/
function submitTheForm() {
if (!myForm.getForm().isValid())
return;
myForm.form.doAction("submit",{
url : 'program_save.action',
waitTitle : '提示',
method : 'POST',
waitMsg : '正在处理数据,请稍候...',
success : function(form, action) { // 回调函数有2个参数
Ext.Msg.confirm('请确认', '新增成功,您要继续新增费率项目吗?', function(
btn, text) {
if (btn == 'yes') {
myForm.getForm().reset();
} else {
firstWindow.hide();
store.reload();
}
});
},
failure : function(form, action) {
firstWindow.hide();
Ext.MessageBox.alert('提示', '数据保存失败');
}
});
}
当点击保存的时候就会访问program_save.action,这是struts.xml的配置,前提是struts的基本环境都配置好了,这里好像有struts的版本问题,因为我用上一个版本不知道为什么不好使。
<package name="default" namespace="/" extends="json-default">
<action name="program_save" class="com.action.ProgramAction" method="save">
<result name="success" type="json"></result>
</action>
</package>
返回sucess就对应这表单提交后执行extjs中成功的回调函数
public String save() throws IOException
{
programService.save(program);
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
out.println("{success:true,msg:'tariff_program addd success'}");
out.flush();
out.close();
return SUCCESS;
}
分享到:
相关推荐
在使用Ext Ajax提交表单前,通常需要先将表单数据序列化为JSON或URL编码格式。ExtJs 4.0的FormPanel对象提供了`getForm()`方法获取表单实例,然后通过`form.submit()`或`form.serialize()`方法完成数据的序列化。 ...
在本篇文章中,我们将深入探讨如何使用Extjs4中的FormPanel组件从后台加载JSON数据,并将其映射到表单的各个字段中进行显示。这是一项非常实用的技术,尤其是在需要动态填充表单的情况下。 ### 一、Extjs4 ...
总结来说,"extjs+servlet+json简单应用"是利用ExtJS构建前端界面,通过Ajax与Servlet进行通信,Servlet处理业务逻辑并返回JSON数据,再由ExtJS解析并展示。这种方式让前后端职责明确,提高了代码的可维护性和扩展性...
EXTJS表单支持两种主要的提交方式:异步(Ajax)提交和传统(Standard)提交。异步提交是EXTJS常用的提交方式,通过Ajax发送JSON或URL编码的数据到服务器,无须页面刷新,能实现更好的用户体验。而传统提交则会创建...
下面将从几个方面展开讨论:ExtJs表单的基本概念、获取表单元素值的方法、实际应用中的技巧以及一些进阶用法。 ### 一、ExtJs表单的基本概念 ExtJs是一款基于JavaScript的开源前端框架,用于构建交互式的Web应用...
`Struts2`可以通过其内置的JSON插件方便地将Java对象转换为JSON格式,然后发送给`ExtJS`,后者可以解析JSON数据并更新UI组件。 在这个例子中,开发者可能创建了一个`Struts2` Action,该Action处理来自`ExtJS`的...
4. **处理嵌套数据**:如果JSON数据包含嵌套对象,可以使用`fieldset`组件来组织表单结构。对于数组,你可以使用`checkboxgroup`、`radiogroup`或其他重复字段来表示。例如: ```javascript items: [{ xtype: '...
综上所述,这个压缩包提供的资料可能涵盖了如何在Struts2中配置和使用Hibernate进行数据持久化,如何利用Spring进行依赖管理和数据访问,以及如何结合ExtJS创建富客户端界面并利用JSON进行前后端通信。对于想要深入...
总的来说,这个实例提供了一个基础的前端和后端交互模型,展示了如何使用ExtJS创建用户界面,通过Struts2处理业务逻辑,以及利用JSON进行数据通信。对于初学者来说,这是一个很好的起点,可以帮助他们理解Web开发中...
首先,实现ExtJs表单提交和登录效果通常涉及以下几个步骤: 1. 在ExtJs子类中添加单击提交事件处理函数。这一过程涉及到使用ExtJs框架提供的事件监听机制,它允许开发者为特定组件绑定自定义事件处理逻辑。 在提供...
当使用Extjs4的form组件进行表单提交时,通常会涉及到Ajax技术,因为form组件的提交实际上是通过Ajax异步发送到服务器,然后根据返回的json数据来执行相应的回调函数。这种机制允许开发者编写更加动态的交互逻辑,而...
在这个“SSH2注解ExtJs前台返回Json的一个增删改查demo”中,我们将探讨如何利用这些技术实现前后端交互,特别是通过Json格式进行数据交换。 首先,让我们了解SSH2中的每个组件: 1. **Spring**:作为基础架构层,...
当我们在使用`FormPanel`时,常常需要使用到其内部的`form`对象来进行数据的加载或提交。这里的`form`对象实际上是`Ext.form.BasicForm`类型,它包含了`load`和`submit`两种方法,用于完成数据的加载和提交工作。 #...
4. **生成JSON响应**:在Action的方法中,使用ActionContext或类似的工具将Java对象转换成JSON字符串。 5. **ExtJS端的配置**:在客户端,创建ExtJS应用,定义Store来接收和处理JSON数据,以及Grid或其他组件来展示...
- **数据发送**:使用XMLHttpRequest对象或者更现代的fetch API,可以异步发送JSON数据到服务器。 ```javascript let xhr = new XMLHttpRequest(); xhr.open('POST', '/api/login'); xhr.setRequestHeader('Content...
如果验证通过,Action会返回一个表示成功的标识,EXTJS客户端根据这个标识决定如何展示反馈信息,例如显示一个成功的提示或者跳转到新的页面。 总的来说,这个示例展示了如何结合EXTJS的前端功能和Struts2的后端...
在IT行业中,构建Web应用程序是常见的任务,而“ExtJS4+JSON+Servlet(Struts2)实现登录验证”是一个典型的前端与后端交互的场景。这个主题涉及到几个关键的技术点,我们将逐一深入探讨。 首先,ExtJS4是一个流行的...
ExtJs表单设计器是一个纯web在线设计器。通过左边的控件树进行拖拉节点到设计区进行设计和布局。设计区是通过html进行展示,尽可能的达到所见即所得的效果。预览区是通过设计区的html进行解析拼装ext的json配置,...
Hibernate是一个对象关系映射(ORM)框架,它将数据库操作与Java对象解耦,使得开发者可以使用面向对象的方式操作数据库。在SSH框架中,Hibernate负责处理数据库的持久化,包括实体类的创建、查询、更新和删除。它...
3. **返回响应**:将处理结果封装成JSON或其他格式,通过Response对象返回到前端。EXTJS的提交回调函数可以解析这个响应,根据结果更新界面或者给出用户反馈。 结合示例代码,我们可以有以下结构: EXTJS部分: ``...