server的响应数据

前言

如果使用了MVC框架(比方,struts2)。

server的响应数据。分3种情况

1、响应数据是结果页面

2、响应数据是json格式的数据

3、响应数据是json格式的数据,然后再又一次发出一次请求

注:响应数据要么是结果页面,要么是json格式的数据,否则。结果页面会覆盖掉json格式的数据——从而导致jquery的post的回调函数没有运行,导致struts2没有跳转到结果页面。

响应数据是结果页面

1.响应数据是结果页面,表示跳转到结果页面。

2.业务的应用场景通常是,查(询)数据就是跳转到结果页面。

代码演示样例

//业务控制器类
//查看任务单反馈信息(注:通常是查数据的时候。就是跳转到结果页面)
public String view() {
		try {
			feedbacklist = feedbackService
					.getTaskFeedbackInfoListByTaskId(taskinfo.getTaskid());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "view";

	}

响应数据是json格式的数据

1.响应数据是json格式的数据的话,那么肯定不是依据struts2配置文件的结果页面进行跳转——实际上,这个时候也没有配置结果页面。否则会覆盖掉json格式的数据。

2.业务的应用场景是。

1)对数据库进行增、删、改的操作。

2)刷新当前页面的部分数据。

代码演示样例

//.jsp代码:发出请求
<s:form action="taskInfoAction!save.action" id="myform" method="post"
				cssClass=‘subForm‘>
				<s:hidden name=‘taskinfo.taskid‘ />
				<div id="bodycontent">
					<p align="left">
						   
						<font class="title_little">任务情况表</font>                                                                                
						                                                   
						         
					</p>
					<table width="1000" height="" border="1">
						<tr>
							<td class="clum_title" width="125">
								项目编号:
							</td>
							<td width="125">
							<s:hidden name="taskinfo.projectid" id="projectid"></s:hidden>
								<s:textfield name="taskinfo.projectcode" maxlength="32" id="projectcode" cssStyle="width:123"/>
							</td>
							<td width="125">
								项目简称:
								</td>
							<td width="125" colspan="3">
								<s:textfield name="taskinfo.projectname" cssClass="required"
									maxlength="64" id="projectname" cssStyle="width:325" onclick="selectProjectInfo()"/>
									</td>
							<!--
							<td class="clum_title" width="125">
								项目类型
							</td>
							<td width="125">
                            <s:select name="taskinfo.tasktype" headerKey="" id="projecttype"
									cssClass="required" headerValue="--请选择--"
									list="@[email protected](‘ProjectType‘)" onchange="showUnitModel(this)"/>
							</td>
							<td width="125">所属里程碑</td>
							<td width="125" id="milestone_td"></td>
							-->
						</tr>
						<tr>
							<td class="clum_title">
								工作计划
							</td>
							<td  colspan="7">
							<font class="introduction">(有计划必须填写)</font>
								<s:hidden name="taskinfo.workplanid" id="workplanid" />
								计划名称:
								<s:textfield name="planname" cssClass="required"
									maxlength="64" id="planname" cssStyle="width:160" />

								计划拟制人:
								<s:textfield name="workplanname" cssClass=""
									maxlength="64" id="workplanname" cssStyle="width:205" />

								<input type="button" value="选择计划信息"
									onclick="selectWorkPlanInfo(‘add‘)" style="width: 125" />

							</td>
						</tr>
							<tr>
							<td  class="clum_title">
								任务名称
							</td>
							<td colspan="2">
								<s:textfield name="taskinfo.taskname" cssClass="required" cssStyle="width: 100%" maxlength="64" />
							</td>
							<td>
								所属部门
							</td>
							<td colspan="2">
								<s:select list="organs" name="taskinfo.departmentid" listKey="organcode" listValue="organname" headerKey="" headerValue="--请选择--" cssClass="required"/>
							</td>
							<td>
								计划外任务单
							</td>
							<td>
								<s:select list="#{‘1‘:‘是‘,‘0‘:‘否‘}" name="taskinfo.outofplan" headerValue="--请选择--" cssClass="required"/>
							</td>
						</tr>

//业务控制器类
// 保存或者改动领导批示信息
	public void save() {
		try {
			/* 新增任务单基本信息 */
			// 获取自己主动生成的id
			String guidid = GuidManager.GetGuid();
			taskinfo.setTaskid(guidid);
			taskinfo.setLockstate("0");
			taskinfo.setTaskcode(this.getTaskcode());// add by hql 20101108
			// 新增一条任务单基本信息

			if("1".equals(taskinfo.getOutofplan())){
				Workplandetail workplandetail=new Workplandetail();
				workplandetail.setWorkplandetailid(GuidManager.GetGuid());
				workplandetail.setWorkplanid(taskinfo.getWorkplanid());
				workplandetail.setPrincipal(taskinfo.getWorkplanname());
				workplandetail.setWorkdescription(taskinfo.getTaskname());
				workplandetail.setStartdate(taskinfo.getBegindated());
				workplandetail.setEnddate(taskinfo.getEnddate());
				workplandetail.setPrincipal(taskinfo.getAcceptperson());
				workplandetail.setProjectid(taskinfo.getProjectid());
				workplandetail.setProjectname(taskinfo.getProjectname());
				workplandetail.setPlanresult(taskinfo.getOutputResult());
				workplandetail.setWorkcontent(taskinfo.getWorkrequired());
				workplandetail.setPlanworkload(taskinfo.getWorkload());
				workplandetail.setTaskrelated("是");
				plandetailService.save(workplandetail);
				taskinfo.setWorkplanid(workplandetail.getWorkplandetailid());
			}
			taskinfoService.addTaskinfo(taskinfo);
			/* 新增任务单方法 */

			/* 假设页面中的变更信息不为空,则新增一条变更信息的记录
			if (!StringUtils.isNull(changeinfo.getChangecontent())) {
				// 设置变更信息的外键
				changeinfo.setTaskid(guidid);
				// 新增一条变更信息
				changeinfoService.save(changeinfo);
			} 新增变更信息方法 */

			/* 假设页面中的绩效考核信息不为空,则新增一条绩效考核信息的记录 */
			if (!isEmpty(evaluateinfo)) {
				if (!StringUtils.isNull(evaluateinfo.getEvakuateremark()) || !StringUtils.isNull(evaluateinfo.getEvaluatetotalscore())
						|| !StringUtils.isNull(evaluateinfo.getExecutionevaluatscore()) || !StringUtils.isNull(evaluateinfo.getQualityevaluatscore())
						|| !StringUtils.isNull(evaluateinfo.getScheduleevaluatscore())) {
					// 新增绩效考核信息
					evaluateinfo.setTaskid(guidid);
					evaluateinfoService.addTaskresultevaluationinfo(evaluateinfo);
				}
			}/* 新增绩效考核信息方法 */

			// 新增工作产物信息
			if (list!=null&&!list.isEmpty()) {
				for (int i = 0; i < list.size(); i++) {
					Taskworkproductinfo workproductentity = new Taskworkproductinfo();
					workproductentity = list.get(i);
					if (!isEmpty(workproductentity)) {
						if (!isNullWorkProductEntity(workproductentity)) {
							workproductentity.setTaskid(guidid);
							String productid = GuidManager.GetGuid();
							workproductentity.setId(productid);
							workproductService.addTaskworkproductinfo(workproductentity);
						} else {
							if (!isEmpty(workproductentity.getId())) {
								workproductService.deleteTaskworkproductinfo(workproductentity.getId());
							}
						}
					}
				}
			}
			super.printSuccssMsg("新增信息成功", guidid);
		} catch (Exception e) {
			super.printFaitureMsg("新增信息失败");
			log.error(e.getMessage(), e);
		}
	}
//业务控制器类的父类
/**
	 * 响应数据-成功
	 * @param successMessage
	 * @param id
	 */
	protected void printSuccssMsg(String successMessage, String id) {
		try {
			if (isEmpty(id))
				getResponse().getWriter().print(
						"{success:true,tip:‘成功提示‘,msg:‘" + successMessage
								+ "‘,Data:‘‘}");
			else
				getResponse().getWriter().print(
						"{success:true,id:‘" + id + "‘,tip:‘成功提示‘,msg:‘"
								+ successMessage + "‘,Data:‘‘}");
		} catch (Exception localException) {
		}
	}

响应数据是json格式的数据,然后在jquery post的回调函数里再又一次发出一次请求

代码演示样例

//.js代码:发出请求
// 遮罩层-注冊
	function register1(){
	    // 提交表单
        var form = document.getElementById("register");
        var param = $("#register").serialize();
	    $.post(form.action,
	           param,
	           function(json){
	               if(json.success){
	                   $.unblockUI();	// 退出遮罩层
	                   window.location = "registerSuccess.jsp";  //发起一次新的请求
	               }else{
	                   alert("注冊失败!

");
	               }
	           },
	           "json");
	}
//配置文件
<struts>
	<package name="loginPackage" extends="struts-default"
		namespace="/login">
		<action name="register" class="loginControllerBean" method="register"></action>
	</package>
</struts>

//业务控制器类
public void register(){
		//
		loginBusiness.register(user);

		//
		try {
			response.getWriter().print("{\"success\":\"true\",\"data\":\"\"}");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

时间: 2024-10-11 10:22:12

server的响应数据的相关文章

Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据

原文:Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据 本来这篇文章在昨天晚上就能发布的,悲剧的是写了两三千字的文章居然没保存,结果我懵逼了.今天重新来写这篇文章.今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式. 作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9807125.html 很多人都说配置文件的配置很繁琐,如果存储在数据库就方便很多,可以通过自定义UI界面在后台进行路由的配置,然后通过调用Admini

Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性. 优点: 1.天生与Spring框架集成,如:(IOC,AOP) 2.支持Restful风格 3.支持灵活的URL到页面控制器的映射 4.非常容易与其他视图技术集成,如:Velocity.FreeMarker等等 5.因为模型数据不存放在特定的API里,而是放在

一个有趣的SQL Server 层级汇总数据问题

看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题. 具体的问题如下: parent_id emp_id emp_name total_amout     NULL 2 Andrew 200     2 1 Nancy 100     2 3 Janet 120     3 4 Michael 80     1 5 Robert 50     每个员工的总销售额=自己的销售额+其下级员工的总销售额,     比如:     Andrew = 200_

SQL Server :理解数据记录结构

在SQL Server :理解数据页结构我们提到每条记录都有7 bytes的系统行开销,那这个7 bytes行开销到底是一个什么样的结构,我们一起来看下. 数据记录存储我们具体的数据,换句话说,它存在堆表里,或者存在聚集索引的叶子节点.数据记录结构是为了让SQL Server更高效的管理数据.我们来看下数据记录结构示意图: 上图中蓝色部分是所有数据记录部分,绿色部分是表结构里取决于定长/变长列的数据记录部分. 行头系统数据: 用做状态位1的第1字节(8位)是用来定义记录的属性: 第0位:版本信息

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. [c-sharp] view plaincopy --Create DataBase create database BulkTestDB; go use BulkTes

用 jQuery.ajaxSetup 实现对请求和响应数据的过滤

不知道同学们在做项目的过程中有没有相同的经历呢?在使用 ajax 的时候,需要对请求参数和响应数据进行过滤处理,比如你们觉得就让请求参数和响应信息就这么赤裸裸的在互联网里来回的穿梭,比如这样: 要知道,在浩瀚的互联网中,所有的信息都是不安全的,万一有人偷窥我们怎么办?!万一被别人看见了我们的美体,偷窥到了我们的私处,然后以此威胁我们,岂不是太难堪了不是?这时,你或许会想给请求数据和响应数据加密,就相当于给我们的数据穿上了一层衣服.于是我们这样: 是不是美美哒,对,穿上一层漂漂亮亮的衣服,就不怕别

根据SQL Server中的数据向矢量图层中添加点对象

SQL Server中的数据已有坐标信息(LAT,LNG) 在FormLoad事件中从SQL里获取数据并存储在DataSet. //在顶部定义SqlConnection对象 // public static string conStr = "server=(local);database=DbName;uid=sa;pwd=123"; //public SqlConnection conn = new SqlConnection(conStr); conn.Open();//打开数据库

SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type](  [TypeId] INT NOT NULL PRIMARY KEY,     [TypeName] NVARCHAR(50)NOT NULL,     [Description] NVARCHAR(255) NULL,     [CategoryId] INT NOT NU

常见SQL Server导入导出数据的几个工具

摘自:http://www.cnblogs.com/chenxizhang/archive/2011/06/09/2076542.html 在我们的日常工作中,与数据库打交道的机会越来越多.这一篇文章我整理一下常见的SQL Server导入导出数据的几个工具 1. 数据导入导出向导 这是一个可视化的工具,我放在首位,是由于它可以极大灵活地满足导入导出功能,而且是所见即所得的,易于使用. 启动数据导入导出向导的方式有好多种,我自己习惯直接通过如下的命令启动(开始=>运行) dtswizard(顾名