一、Action直接输入js代码
struts2的Action方法,可以没有返回值,void,然后直接out.write("<script>js代码</script>")
out.println("<script>js代码</script>")
/**
* 单个修改价格
* @return
* @author mengxianjun
* @throws Exception
* @date 2011-4-25 上午09:30:53
*/
public void updatePrice() throws Exception
{
TCommissionId tCommissionId = new TCommissionId();
tCommissionId.setProductNum(productNum);
tCommissionId.setTypeNum(typeNum);
commission = priceStrategyService.queryTCommissionById(tCommissionId);
/*按价格修改,else按比率修改*/
if( "prices".equals(updateType) )
{
fastPriceOrRatio = DoubleConvert.getDoubleByFastPrice(fastPriceOrRatio);
Double fastCommission = DoubleConvert.getDoubleByFastCommission((money[0])-fastPriceOrRatio);
commission.setFastCommission(fastCommission);
commission.setFastPrice(fastPriceOrRatio);
commission.setAlterDate(new Date());//修改时间
commission.setEmployeeId(getEmpID());//处理工号
priceStrategyService.updateTCommission(commission);
}
else
{
Double fastPrice = DoubleConvert.getDoubleByFastPrice((money[0])*fastPriceOrRatio);//通过比率算出实际价格
Double fastCommission = DoubleConvert.getDoubleByFastCommission((money[0])-fastPrice);//面值-实际价格,得到佣金
commission.setFastCommission(fastCommission);
commission.setFastPrice(fastPrice);
commission.setAlterDate(new Date());//修改时间
commission.setEmployeeId(getEmpID());//处理工号
priceStrategyService.updateTCommission(commission);
}
this.getResponse().setContentType("text/html;charset=UTF-8");
this.getResponse().setCharacterEncoding("UTF-8");
PrintWriter out = this.getResponse().getWriter();
out.println("<script>alert('修改成功!');history.go(-2);window.location.reload(true);</script>");
out.flush();
out.close();
return null;
}
二、AJAX提交,Struts2的Action返回json数据
/**
* 验证业务密码--ajax方式
* @author mengxianjun
* @throws IOException
* @date 2011-6-13 下午01:33:03
*/
public void checkPwd2() throws IOException
{
PrintWriter out = this.getResponse().getWriter();
String vp = "false";
if( valiPass(password2) )
{
vp = "true";
out.write("{\"msg\":\""+vp+"\"}");//反斜杠转义
}
else
{
vp = "false";
out.write("{\"msg\":\""+vp+"\"}");//反斜杠转义
}
}
分享到:
相关推荐
这种方法涉及到直接在Action中使用`response.getWriter()`来输出JavaScript代码,从而触发浏览器的弹窗警告。 ```java PrintWriter outjs = response.getWriter(); outjs.print("<script>alert('成功');window....
1. **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求。Action类通常会与Service层交互,完成特定的业务功能。 2. **配置**:Struts2的配置分为XML配置和注解配置两种方式。XML配置文件(struts....
总结,Struts2中返回JSON数据有两种主要方式:一是通过`response.getWriter().print()`手动输出JSON字符串;二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,...
在Struts2中,`<s:iterator>`标签是最常用的迭代标签,用于遍历集合或数组。例如,你可以使用它来显示数据库查询结果: ```jsp <p>Id: , Name: <s:property value="name" /></p> ``` 在这个例子中,`list`是你...
在Struts2中,开发者可以使用注解来声明动作(Action)、结果(Result)和拦截器(Interceptor)等。 2. **Struts2中的主要注解**: - `@Action`: 这个注解用于标记一个Java类作为Struts2的动作类,它定义了请求...
拦截器是Struts2中的一个重要特性,它允许开发者在Action执行前后添加自定义的行为,比如身份验证、数据校验等。通过配置文件可以轻松地控制哪些Action需要经过哪些拦截器。 **1.2.3 FilterDispatcher与Action映射*...
在Struts2中整合JSON(JavaScript Object Notation)和YUI(Yahoo User Interface Library)可以实现高效的异步数据交互,提升用户体验。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
4. **模型驱动(ModelDriven)**:Struts2的ModelDriven模式允许将Action类的复杂性降低,通过将模型对象直接绑定到Action,简化了数据处理。这有助于保持Action的简洁性,并提高代码的可读性和可维护性。 5. **...
2. **struts2-convention**: 这个模块支持约定优于配置(Convention over Configuration)的概念,允许开发者通过类名和方法名自动映射URL,减少了XML配置的需求。 3. **struts2-dojo-plugin**: 提供了对Dojo ...
4. **图表在视图层的展示**:在Struts2中,通常会将生成的图表作为图像流(ImageStream)返回,通过ActionResult的类型(如StreamResult)来实现。这涉及到设置图表的输出格式(如JPEG或PNG),以及在Action中设置...
在Struts2中实现Ajax交互,通常需要依赖一些特定的库和插件。以下是对"ajax-struts2需要的3个包"的详细解释: 1. **json.js**: 这是一个JavaScript库,用于处理JSON(JavaScript Object Notation)数据格式。JSON...
在"Struts2_JSON_Demo"项目中,你可以通过分析源代码,了解上述各个步骤的实现细节,从而深入理解Struts2和JSON的交互。这个示例项目将帮助你掌握如何在实际项目中有效地使用Struts2和JSON,提升Web应用的性能和用户...
1. **Action与Result**:在Struts2中,Action类是业务逻辑的载体,它处理用户的请求并返回相应的结果。Result则是Action执行后展示的视图,可以是JSP、Freemarker模板或者其他任何形式的输出。 2. **配置文件**:...
在Struts2中,标签库是其核心组件之一,极大地简化了视图层的开发,使得开发者可以更加专注于业务逻辑而不是繁琐的HTML代码。本篇文章将深入探讨Struts2的标签库,并通过具体案例进行讲解。 首先,Struts2标签库...
2. `ognl.jar`:对象图导航语言,用于表达式语言,Struts2中用于在Action和视图之间传递数据。 3. `freemarker.jar`或`velocity.jar`:模板引擎,用于生成动态HTML页面,Struts2默认支持Freemarker,但也可以选择...
4. 数据交换格式:Struts2可以通过配置支持JSON输出,这样可以直接被Ext JS解析,实现前后端数据的无缝对接。 5. 错误处理和验证:利用Struts2的拦截器实现全局错误处理和数据验证,将错误信息反馈给Ext JS的界面...
在Struts2框架中,JSON Plugin使得Action的返回结果可以直接转换为JSON格式,方便前端JavaScript代码处理。这个插件的版本为2.1.8,表明它是针对Struts2框架2.1.8版本设计和优化的。该版本可能包含了对JSON序列化、...
6. **前端展示**:在页面上,使用Struts2的标签库或者其他方式(如JavaScript、jQuery)来触发报表下载动作,或者在页面上直接显示报表内容。 在实际应用中,可能还需要考虑以下方面: - **国际化与参数化**:...
在Struts2中,我们通常会用到`@Action`、`@Result`等注解来定义一个Action类和其结果。要返回JSON,我们需要引入Struts2的JSON插件。该插件提供了处理JSON输出的能力,使Action可以直接返回Java对象,而无需手动构建...
在Struts2中,处理Action类的结果通常会重定向到一个JSP页面或发送一个简单的文本响应。然而,在现代Web应用中,JSON(JavaScript Object Notation)格式的数据交换变得越来越普遍,因为它能轻松地在服务器和客户端...