1.页面代码
div id="commenthtml" style="display:none;">
<div class="form_box">
<div class="form_row">
<div class="form_label"><label>专辑名称:</label></div>
<div class="form_field"><input type="text" id="albumName" name="albumName" value="" maxlength="30"/></div>
</div>
<div class="form_row">
<div class="form_label"><label>描 述:</label></div>
<div class="form_field"><textarea title="字数不超过200个字符" id="albumDesc" name="albumDesc" onKeyDown="LimitTextArea(this)" onKeyUp="LimitTextArea(this)" onkeypress="LimitTextArea(this)"></textarea></div>
</div>
<div class="form_row">
<div class="form_label"></div>
<div class="form_field">
<span class="btn_a"><input type="button" name="saveAlbum" id="saveAlbum" onclick="submitAlbum(this.form);" value="创建"/></span>
<span class="btn_a"><input type="button" id="cancelBtn" value="取消"/></span>
</div>
</div>
</div>
</div>
调用ajax
function submitAlbum(form){
var albumName = $("#albumName").val();
var albumDesc = $("#albumDesc").val();
if(albumName == ""){
alert('提示:专辑不能为空!');
return false;
}
if(albumDesc == ""){
alert('提示:专辑描述不能为空!');
return false;
}
$.ajax({
type: "POST",
url: "/enterprisercenter/saveAlbum.action",
data: "tpId=1013&enterPriserAlbum.albumName=" + albumName +"&enterPriserAlbum.albumDesc=" + albumDesc,
dataType:'json',
success: function(json){
if (json.op=='succ'){
alert("操作成功");
window.location.reload();
}else if (json.op=='hasDiscard'){
alert(json.msg);
$("#" + json.code).focus();
}else{
alert(json.msg);
}
}
});
}
action 代码:
//保存相册
public void saveAlbum() throws IOException{
try {
if (FilterDiscard.hasDiscard(enterPriserAlbum.getAlbumName(),true)) {
getJsonHelper().fail("hasDiscard", "提示:名称中有非法字符!").set("code", "albumName").write();
return;
}
if (FilterDiscard.hasDiscard(enterPriserAlbum.getAlbumDesc(),true)) {
getJsonHelper().fail("hasDiscard", "提示:描述中有非法字符!").set("code", "albumDesc").write();
return;
}
enterPriserAlbum.setAlbumUserid(this.getSessionUser().getUserId()+"");
enterPriserAlbum.setCreateDate(DateTimeUtils.parseFullDateTime(DateTimeUtils.getDateTime()));
enterPriserAlbum.setUpdateDate(DateTimeUtils.parseFullDateTime(DateTimeUtils.getDateTime()));
enterPriserAlbum.setAlbumLogUrl("http://img1.woyopic.com/2010/0826/332/1-3bce7d978f54630889d0dd0310478dda.jpg");
enterPriserPhotoService.addEnterPriserAlbum(enterPriserAlbum);
getUser();
getJsonHelper().succ().write();
}catch(Exception ex) {
getJsonHelper().fail("操作失败!").write();
ex.printStackTrace();
}
//return "personalAlbum";
}
JsonHelper类代码:
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
/**
* 输出的帮助类 作用:封装控制器中json的使用, 用法如下:
* 基础功能 set("chargeType", "1"); //设置json的值 add("list", "value1"); //添加值 write();
* //输出 disableCache(); //清缓存
* 组合使用 set("chargeType", "1").set("count", 5).add("list",
* "value1").add("list","value2").succ().write();
* 同时作注释 return getJsonHelper() //设置id .set("id", model.getId())
//设置 列表
* .set("list", configService.getList(model.getType())) // 设置 当前用户
* .set("userId", passportService.getCurrentUserId()) // 结果列表'list' .add("list",
* "value1") .add("list","value2") // 清缓存 .disableCache().succ().write();
* @author
*/
public class JsonHelper {
private static final long serialVersionUID = -1531331734713947690L;
protected JSONObject root = new JSONObject(false);
/**
* 取得输出对象JSON(Dto)
*
* @return
*/
public JSONObject getJson() {
return root;
}
/**
* 禁止缓存
* @return
*/
public JsonHelper disableCache() {
HttpServletResponse res = ServletActionContext.getResponse();
res.setContentType("text/html;charset=UTF-8");
// res.setHeader("Cache-Control","no-cache"); //Forces caches to obtain a new copy of the page from the origin server
// res.setHeader("Cache-Control","no-store"); //Directs caches not to store the page under any circumstance
// res.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
// res.setHeader("Pragma","no-cache"); //HTTP 1.0 backward compatibility
return this;
}
/**
* 设值
*
* @param key
* @param value
* @return
*/
public JsonHelper set(String key, Object value) {
return put(key, value);
}
public JsonHelper put(String key, Object value) {
root.put(key, value);
return this;
}
/**
* 以数组形式在指定位置添加数据 即 JsonHelper() .add("list", "abc") .add("list", "bcd")
* .add("list", "cde");
*
* 等价于 JSONArray array = new JSONArray(); array.add("abc");
* array.add("bcd"); array.add("cde"); JsonHelper().set("list", array);
*
* 暂不支持子路径 即 add("max.list", "abc") 将会保存到
* JsonHelper().getJson().get("max.list") 而不是
* JsonHelper().getJson().get("max").get("list")
*
* @param key
* @param value
* @return
*/
public JsonHelper add(String key, Object value) {
Object j = root.get(key);
if (j == null) {
root.put(key, new JSONArray());
j = root.get(key);
}
if (j instanceof JSONArray) {
((JSONArray) j).add(value);
return this;
}
throw new RuntimeException("已经设值,且不是数组");
}
/**
* 快速设置成功页 效果 json.put("op", "succ");
*
* @return
*/
public JsonHelper succ() {
root.put("op", "succ");
return this;
}
/**
* 快速设置失败页,由于‘不成功’就表示‘失败’,所以此方法一般不需调用, 除非需要指定失败类型(或提示语句)
*
* @param msg
* @return
*/
public JsonHelper fail(String msg) {
root.remove("op");
root.put("msg", msg);
return this;
}
public JsonHelper fail(String op, String msg) {
root.put("op", op);
root.put("msg", msg);
return this;
}
/**
* 输出json,所用数据从json中取
*
* @return
*/
public String write() {
HttpServletResponse res = ServletActionContext.getResponse();
res.setCharacterEncoding("UTF-8");
// res.setContentType("application/json");
try {
res.getWriter().print(root.toString());
return null;
} catch (IOException e) {
throw new RuntimeException("", e);
}
}
public String toString() {
return root.toString();
}
}
struts.xml代码
<!-- 保存相册-->
<action name="saveAlbum" class="com.woyo.business.enterprisercenter.representation.action.EnterPriserAlbumAction" method="saveAlbum">
<interceptor-ref name="MastLoginWebStack"/>
<!-- <result name="personalAlbum" type="redirectAction">personalAlbum?tpId=1011</result>-->
</action>
分享到:
相关推荐
- **JSONP**:JSONP(JSON with Padding)是另一种跨域解决方案,通过动态插入`<script>`标签实现。 7. **安全考虑**: - **JSON Hijacking**:需要注意防止JSON响应被恶意脚本利用。 - **JSONP的安全性**:由于...
JSON,另一方面,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它是基于JavaScript语法的,因此在Web开发中,特别是在与服务器进行数据交换时,JSON被广泛采用。 在"Demo_jquery_json...
另一种方式是通过全局变量来共享数据。虽然这不是最佳实践,但在某些情况下可能有用: ```javascript var globalData; $.ajax({ // ... success: function(response) { globalData = JSON.parse(response); ...
在JSP中使用Ajax,我们经常需要处理JSON(JavaScript Object Notation)数据,因为JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 标题中提到的"jsp中调用用Ajax必备之品的json的...
另一种使用POST方式的jQuery AJAX方法是`$.post`,它更简洁,但处理返回数据时稍有不同: ```javascript $(function() { $("#send").click(function() { var cont = { username: $("input")[0].value, age: $...
Google的Gson库是另一个广泛使用的JSON库,它能够将Java对象转换为JSON字符串,反之亦然。Gson的使用简单,只需一个简单的调用即可完成转换。 3. **org.json库**: 这是一个小型的JSON库,提供了一些基本的类来...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,设计简单且易于人阅读和编写,同时也易于机器解析和生成。JSON格式被广泛应用于Web服务和客户端之间的数据交互,因为...
另一种方法是将查询字符串转换为哈希表(Hashtable)以便更方便地访问参数: ```java import java.util.Hashtable; import java.util.StringTokenizer; Document doc = agentContext.getDocumentContext(); String...
另一种跨域方法是使用 jQuery 的 `getJSON` 函数,它的用法类似于 AJAX,但专门用于获取 JSON 格式的数据。`getJSON` 同样支持 JSONP 协议,因此也可以实现跨域请求。基本用法如下: ```javascript $.getJSON('...
2. **返回HashTable**:HashTable是另一种数据结构,类似于JavaScript的对象。在Ajax调用中,服务器可能返回一个哈希表(HashTable),如Java中的HashMap,键值对形式存储数据。例如,`{"key1":"value1", "key2":...
为了解决上述问题,本文将介绍一种新的方法——直接利用Ajax调用Action来获取数据,并将数据以XML或JSON格式返回给前端。这种方式不仅能够有效提高系统响应速度,还能简化开发流程,增强代码的可读性和可维护性。 #...
JSP(JavaServer Pages)是另一种Java Web技术,它允许开发者在HTML页面中嵌入Java代码,实现动态网页。在JSON+Jquery+servlet的例子中,JSP可能用来生成包含AJAX调用的HTML页面,或者在某些情况下,用于展示从...
首先,JSON是一种基于文本的轻量级的数据交换格式,它采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。JSON数据由键值对组成,可以嵌套形成复杂的结构。在JavaScript中,JSON可以很容易地转换为...
在IT行业中,AjaxFileUpload与Struts2框架的结合,特别是在处理JSON响应方面,是一种常见的文件上传技术。这里我们深入探讨这个主题。 首先,`ajaxFileUpload` 是一个JavaScript库,它允许用户在不刷新整个页面的...
在前端,你可以使用jQuery的`$.ajax()`或`$.getJSON()`方法来发送异步请求到服务器获取JSON数据,然后使用`$.parseJSON()`或`JSON.parse()`来解析返回的JSON字符串。 5. **服务器端拼接**:在`testMethod.java`和`T...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但也使用了类似于C家族语言,包括C...
1. **使用普通的AJAX请求**:通过`$.ajax()`方法,设置`dataType`为`json`,表示期望的返回类型是JSON。但由于同源策略,这个请求会被浏览器阻止。注释掉的代码中,URL指向的是另一个端口(8089),这在默认情况下会...
JSON的数据格式主要包括两种结构:一种是键值对,另一种是有序的值列表。 #### jQuery与JSON数据交互 jQuery是一个快速、简洁的JavaScript库,使用户能更方便地处理HTML文档、事件、实现动画效果,并且方便地为...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Web开发中,JSON是数据传输的重要载体,尤其在前后端交互中扮演着...