`
y806839048
  • 浏览: 1117006 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

spring mvc参数复杂混合传递方式,混合返回方式

阅读更多

============================================================================

 

spring mvc参数复杂混合传递方式,混合返回方式:

在传递list的实体时如果还要传递其他单个属性这些单个属性要放在requestHeader中,

类似的图片流就放在requestbody中(一般httpclient工具方),后台拿也从requestbody中

 

@RequestHeader(value="fg") String fg 可以接受http请求的对应名称参数,也可接受直接方法调用的参数

 

@RequestMapping(value="/system/opmRole/Auths")

@ResponseBody

public JSONArray treeRead(@RequestHeader(value="fg") String fg,@RequestHeader(value="id",required=false) String id,@RequestHeader(value="leave") String leave,

@RequestHeader(value="roleId") String roleId,@RequestHeader(value="pId")  String pId,@RequestHeader(value="groupId",required=false)  String groupId1,

@RequestBody(required=false) List<OpmRolelimit> o){

         JsonArray.addAll(treeRead(fg,id,leave,roleId,p.get("ID")+"",groupId,o));

return JsonArray;

 

 

 

function appendTable() {

var roleId=$("input[name='roleId']").val();

var leave=$("input[name='leave']").val();

var pId=$("input[name='pId']").val();

var id=$("input[id='idy']").val();

//alert($("input[id='idy']").val());

var dataParent = {

roleId: "1",

leave:"2",

pId:"3",

id:"5"

 

   };

$.ajax({

        type: "post",

        url: "${pageContext.request.contextPath}/system/opmRole/Auths",

        //data: dataParent,

       // headers:"{\"id\": \"1\",\"leave\":\"2\",\"roleId\":\"3\",\"pId\":\"5\"}",

        beforeSend: function(xhr){///参数方头部

        xhr.setRequestHeader('id', id);//注意不同的浏览器这种传头部参数遇到空值会有问题,在后台加required=false

        xhr.setRequestHeader('leave', leave);

        xhr.setRequestHeader('roleId', roleId);

        xhr.setRequestHeader('pId', pId);

        xhr.setRequestHeader('fg', "1");

        },

        //dataType: 'json',

        //contentType: "application/json",

        success: function (data) {

        if(data!=''&&data!=null){

        var div1=$("#div1");

        var table1=$("<table></table>");

        var arr = eval(data);

        for(j=0;j<arr.length;j++){

        if(arr[j].leave=='1'){

        var row =$("<tr></tr>");

        var td =$("<td></td>");

        td.append($(arr[j].str));

        row.append(td);

        table1.append(row);

        }

        var row2 ;

        if(arr[j].leave=='2'){

        row2 =$("<tr></tr>");

        var td =$("<td></td>");

        td.append(arr[j].str);

        row2.append(td);

        table1.append(row2);

        }if(arr[j].leave=='3'){

        var td =$("<td></td>");

        td.append(arr[j].str);

       

        table1.find("tr:last").append(td);

        }

        }

        div1.html(table1);

        }else{

        alert("你输入的会员编号不存在!");

        }

       

        },

        error:function(data){

        alert("数据加载异常!");

       

        }

    }); 

 

    }

 

 

ajax要么用responsebody(自动转化成json),要么用response.getWrite().write()(可以是string,也可以是html(页面局部整个html难拼接))

也可直接return “字符串”,或页面跳转

 

js中要能回调到需要写对接收格式

 

=====================================================================================================

 

response.getWrite().write() (字符)返回和return (页面跳转,字符)在一个方法中可以混用

 

        @SuppressWarnings({ "rawtypes", "unchecked", "unused" })

@RequestMapping(value = "/chat/offer/record/{conobjKey}/{ownerKey}/{tradeCustomerKey}/{urlCurrentUserKey}", method = RequestMethod.GET)

public String TbConOrdPriceGetRecord(@RequestParam(value="cx", required=false) String cx,HttpSession session, HttpServletRequest request, HttpServletResponse response, @PathVariable String conobjKey,

@PathVariable String ownerKey, @PathVariable String tradeCustomerKey, @PathVariable String urlCurrentUserKey, Model model)

throws EsteelException, IOException {

if (conobjKey==null || ownerKey==null || tradeCustomerKey==null || urlCurrentUserKey==null || conobjKey.equals("") || ownerKey.equals("") || tradeCustomerKey.equals("") || urlCurrentUserKey.equals("")) {

writeToResponse(response, "invalid key");

return null;

} else {

/* 获取当前用户的key */

String currentuserKey = getCurrentUserKey(request, session);

if (!currentuserKey.equals(urlCurrentUserKey)) {

currentuserKey = urlCurrentUserKey;

}

if (!currentuserKey.equals(ownerKey) && !currentuserKey.equals(tradeCustomerKey)) {

/* 如果当前用户不是主人或者客户,不允许查看 */

writeToResponse(response, "access denied");

return null;

} else {

 

Map<String,Object> pn = new HashMap<String,Object>();

pn.put("objKey", conobjKey);

   Map ren= tbConObjService.getConObjByKeynew(pn);

  model.addAttribute("dataMap", ren);

 /* if(ren.get("CUSTOMER_KEY").toString().equals(currentuserKey)){

  

  }else{}*/

String MEASURE_MODE= (String) ren.get("MEASURE_MODE");

int wareKindKey= Integer.valueOf(ren.get("WAREKIND_KEY")+"");

String PRICE_MODEL= (String) ren.get("PRICE_MODEL");

String currency_type= (String) ren.get("CURRENCY_TYPE");

String type="";

Map ycLsPara = new HashMap<String,Object>();

ycLsPara.put("conobj_key", conobjKey);

List list = tbConObjService.getYCDHList(ycLsPara);

    if (ren.get("BAIL_TYPE").equals("A")){

         model.addAttribute("XUNPANTYPE", "No");

       }else if ((ren.get("PACK_NAME") == null) || (!ren.get("PACK_NAME").equals("卷"))) {

        model.addAttribute("XUNPANTYPE", "No");

      }else {

        Map ormx = new HashMap<String,Object>();

  ormx.put("CONOBJ_KEY", conobjKey);

  ormx.put("LIST_STATUS", "A");

          List<Map> conObjHuoWuListMap = tbConObjService.getJZMX1(ormx);

          model.addAttribute("conObjHuoWuListMap", conObjHuoWuListMap);

          model.addAttribute("XUNPANTYPE", "HuoWu");

        }

       Map paramPz = new HashMap<String,Object>();

paramPz.put("CONOBJ_KEY", conobjKey);

paramPz.put("CUSTOMER_KEY", currentuserKey);

paramPz.put("ORDER_STATUS", "A");

paramPz.put("ORD_KEY", null);

List<Map> conOrdMap= tbConObjService.getConOrdByCustomerKey(paramPz);

if (conOrdMap != null && conOrdMap.size()>0) {

model.addAttribute("conOrdMap", conOrdMap.get(0));

}else{

model.addAttribute("conOrdMap", null);

}

if (conOrdMap != null && conOrdMap.size()>0) {

Map ormx = new HashMap<String,Object>();

ormx.put("ORD_KEY", Integer.valueOf(conOrdMap.get(0).get("ORD_KEY")+""));

ormx.put("ORDPRICE_NO", null);

ormx.put("CUSTOMER_KEY", null);

ormx.put("ORDPRICE_MAN", "A");

tbConObjService.updateConOrdPriceIS_LOOK(ormx);

        }

Map corprspara = new HashMap<String,Object>(); 

corprspara.put("CONOBJ_KEY", conobjKey);

corprspara.put("CUSTOMER_KEY", tradeCustomerKey);//询盘

corprspara.put("ORDPRICE_MAN", null);

List<Map> yjList= tbConObjService.getConOrdPriceList(corprspara);

   model.addAttribute("yjList", yjList);

  if("Y".equals(ren.get("IS_MULTIWARE"))){

  Map paramPzOrdKey = new HashMap<String,Object>();

      paramPzOrdKey.put("CONOBJ_KEY", conobjKey);

      paramPzOrdKey.put("CUSTOMER_KEY", tradeCustomerKey);

      paramPzOrdKey.put("ORDER_STATUS", "D");

      paramPzOrdKey.put("ORD_KEY", cx);

      List<Map> conOrdMapOrdKey=null;

      if(cx==null||"".equals(cx)){

      conOrdMapOrdKey=null;

      }else{

      conOrdMapOrdKey= tbConObjService.getConOrdByCustomerKey(paramPzOrdKey);

      }

     

model.addAttribute("conOrdMapOrdKey", conOrdMapOrdKey);

        if ((yjList != null) && (yjList.size() > 0)){

           boolean first = true;

          for (int i = 0; i < yjList.size(); i++){

            Map map = (Map)yjList.get(i);

            if ("Y".equals(map.get("IS_MULTIWARE"))){ 

             Map prsMX = new HashMap<String,Object>();

 prsMX.put("ord_key", map.get("ORD_KEY"));

 prsMX.put("ordprice_no", map.get("ORDPRICE_NO"));

     map.put("MX", tbConObjService.getConOrdPriceMX(prsMX));

              if (("B".equals(map.get("ORDPRICE_MAN"))) && (first)) {

                first = false;

                model.addAttribute("conOrdPriceLastObjectMap", tbConObjService.getConOrdPriceMX(prsMX));

             }

           }

          }

        }

    

        TbConOrd tbConOrdNew = new TbConOrd();

tbConOrdNew.setOrdKey(cx);

TbConOrd tbConOrdNew2 = null;

if(cx!=null&&!"".equals(cx)){

tbConOrdNew2 = tbConOrdService.getTbConOrdByObj(tbConOrdNew);

}

if(tbConOrdNew2!=null){

model.addAttribute("ordSta", tbConOrdNew2.getOrderStatus());

}else{

model.addAttribute("ordSta", "");

}

       if(ren.get("CUSTOMER_KEY").toString().equals(currentuserKey)){

  return "/chat/offer/ySaleCDHDickerList";

  }else{

 return "/chat/offer/yCDHDickerList";

  }

 

 

 

 

 

}else{

 

TbConObj tbConObj = tbConObjService.getTbConObjById(conobjKey);

List<TbConOrdVo> tbConOrdVoList = tbConOrdService.getTbConOrdVoList(conobjKey, tradeCustomerKey);

String strJson = "({";

strJson += "\"chatRecord\":[";

int k = 0;

String highPrice = "1999999999";

String lowPrice = "0";

for (TbConOrdVo tbConOrdVo1 : tbConOrdVoList) {

/* 循环得到最高价和最低价 */

if (tbConOrdVo1.getOrdpriceMan() != null) {

if (tbConOrdVo1.getOrdpriceMan().equals("B")) {

/* 不是是发起方 */

if (tbConOrdVo1.getContradeType().equals("A")) {

/* 是卖单 */

if (Double.parseDouble(lowPrice) < Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

lowPrice = tbConOrdVo1.getOrderPrice();

}

} else {

/* 是买单 */

if (Double.parseDouble(highPrice) > Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

highPrice = tbConOrdVo1.getOrderPrice();

}

}

} else {

 

 

/* 是发起方 */

if (tbConOrdVo1.getContradeType().equals("A")) {

/* 是卖单 */

if (Double.parseDouble(highPrice) > Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

highPrice = tbConOrdVo1.getOrderPrice();

}

} else {

/* 是买单 */

if (Double.parseDouble(lowPrice) < Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

lowPrice = tbConOrdVo1.getOrderPrice();

}

}

}

} else {

/* 不是是发起方 */

if (tbConOrdVo1.getContradeType().equals("A")) {

/* 是卖单 */

if (Double.parseDouble(lowPrice) < Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

lowPrice = tbConOrdVo1.getOrderPrice();

}

} else {

/* 是买单 */

if (Double.parseDouble(highPrice) > Double.parseDouble(tbConOrdVo1.getOrderPrice())) {

highPrice = tbConOrdVo1.getOrderPrice();

}

}

}

k = k + 1;

strJson += "{";

String msgText = tbConOrdVo1.getMsgText();

if (null == msgText || msgText.contains("请录入您的议价留言,最大为300个字符!按Ctrl+Enter提交!")) {

msgText = "";

}

/* 替换掉换行符,否则会报错 */

msgText = msgText.replaceAll("\n", "");

int chatChoice = 0;

int isdlfs=0;

if(tbConObj.getCustomerKey().equals(currentuserKey)){

isdlfs=1;

}

if (tbConOrdVo1.getOrdpriceMan() != null) {

if (tbConOrdVo1.getOrdpriceMan().equals("B")) {

 

chatChoice = 2;

int flag =0;

if(tbConObj.getCustomerKey().equals(currentuserKey)){

flag=1;

}

/* 不是是发起方 */

strJson += "\"chatChoice\":\"2\","+"\"isDlFQ\":\""+flag+"\","+"\"isdlfs\":\""+isdlfs+"\",";

 

} else {

 

/* 是发起方 */

chatChoice = 1;

int flag =0;

if(tbConObj.getCustomerKey().equals(currentuserKey)){

flag=1;

}

strJson += "\"chatChoice\":\"1\","+"\"isDlFQ\":\""+flag+"\","+"\"isdlfs\":\""+isdlfs+"\",";

}

} else {

chatChoice = 1;

int flag =0;

if(tbConObj.getCustomerKey().equals(currentuserKey)){

flag=1;

}

strJson += "\"chatChoice\":\"1\","+"\"isDlFQ\":\""+flag+"\","+"\"isdlfs\":\""+isdlfs+"\",";

}

if (tbConObj.getAnonymMark().equals("B")) {

strJson += "\"chatName\":\"***\",";

} else {

/*

* 当currentuserKey eq

* tbConObj.getCustomerKey(),说明当前是主人在浏览

*/

/*

* 当currentuserKey eq

* tbConOrdVo1.getCustomerKey(),说明是客人在浏览

*/

if (chatChoice == 1 && currentuserKey.equals(tbConObj.getCustomerKey())) {

strJson += "\"chatName\":\"我\",";

} else if (chatChoice == 2 && currentuserKey.equals(tbConOrdVo1.getCustomerKey())) {

strJson += "\"chatName\":\"我\",";

} else {

    if(chatChoice == 1){

strJson += "\"chatName\":\"" + ren.get("CUSTOMER_NAME") + "\",";//tbConOrdVo1.getCustomerName()

    }else{

    strJson += "\"chatName\":\"" + tbConOrdVo1.getCustomerName() + "\",";//tbConOrdVo1.getCustomerName() 

    }

}

}

strJson += "\"chatPrice\":\"" + tbConOrdVo1.getNewPrice() + "\",";

if (tbConObj.getCurrencyType().equals("A")) {

strJson += "\"chatCurrency\":\"元\",";

} else if (tbConObj.getCurrencyType().equals("B")) {

strJson += "\"chatCurrency\":\"美元\",";

}

 

strJson += "\"chatNumUnit\":\"" + tbConObj.getNumUnit() + "\",";

strJson += "\"chatNum\":\"" + tbConOrdVo1.getNewNum() + "\",";//tbConOrdVo1.getOrderNum()

strJson += "\"objKey\":\"" + tbConOrdVo1.getConobjKey()+ "\",";

strJson += "\"ordKey\":\"" + tbConOrdVo1.getOrdKey() + "\",";

strJson += "\"ordPriceNo\":\"" + tbConOrdVo1.getOrdpriceNo() + "\",";

strJson += "\"contradeKind\":\"" + tbConObj.getContradeKind() + "\",";

strJson += "\"ordKey\":\"" + tbConOrdVo1.getOrdKey() + "\",";

strJson += "\"chatMsgText\":\"" + msgText + "\"}";

if (k < tbConOrdVoList.size()) {

strJson += ",";

}

}

TbConOrd tbConOrdNew = new TbConOrd();

tbConOrdNew.setOrdKey(cx);

TbConOrd tbConOrdNew2 = null;

if(cx!=null&&!"".equals(cx)){

tbConOrdNew2 = tbConOrdService.getTbConOrdByObj(tbConOrdNew);

}

strJson += "],";

strJson += "\"highPrice\":\"" + highPrice + "\",";

if(tbConOrdNew2!=null){

strJson += "\"ordSta\":\"" + tbConOrdNew2.getOrderStatus() + "\",";

}else{

strJson += "\"ordSta\":\"\",";

}

strJson += "\"lowPrice\":\"" + lowPrice + "\"";

strJson += "})";

writeToResponse(response, strJson);

return null;

}

}

 

}

}

 

1
0
分享到:
评论

相关推荐

    Servlet,JSP和Spring MVC 初学指南源码

    此外,Spring MVC还提供了ModelAndView对象来传递模型数据到视图,以及视图解析器来确定最终的视图。 在这个名为“budi-kurniawan-servlet-jsp-springmvc-examples-4754f4ab5d5c”的压缩包中,可能包含了各种示例...

    Servlet+JSP和Spring+MVC初学指南 书籍配套源码

    Servlet+JSP与Spring+MVC是两种在Java...Servlet+JSP更适合小型项目,而Spring+MVC在大型复杂项目中表现出色。结合配套源码学习,能帮助初学者快速掌握这两者的核心概念和实践技巧,为日后的Java Web开发打下坚实基础。

    springmvc4的jar包

    在配置方面,Spring MVC 4.0.5支持Java配置和XML配置的混合使用,让开发者可以根据项目需求灵活选择配置方式。此外,Spring Boot的兴起使得Spring MVC的配置进一步简化,通过自动配置特性,开发者可以快速启动和运行...

    spring学习文档及源码笔记

    - 数据绑定:Spring MVC 自动将请求参数绑定到 Controller 方法的参数。 - 验证:使用 `@Valid` 进行数据验证,结合 Hibernate Validator 或 JSR-303/JSR-349 规范实现。 6. **异常处理** - 全局异常处理器:...

    JSP+DAO和MVC+DAO(基于MySQL数据库分页)

    2. **Spring MVC**:在Java世界中,Spring MVC是广泛应用的MVC框架,它简化了Web应用的开发,提供了优雅的解耦方式。 3. **分页实现**:在Spring MVC中,分页通常借助于Spring Data JPA或MyBatis等持久层框架实现。...

    jsp+Spring+hibernate 博客系统

    通过结合JSP的视图呈现、Spring的控制层管理和Hibernate的数据持久化,开发者能够快速、高效地开发出具有复杂业务逻辑的博客平台。如果你希望深入了解这个系统的实现细节,需要深入研究源代码和配置文件,理解它们...

    SpringMVC+Hibernate+Spring+JSP整合实例

    Spring MVC通过DispatcherServlet作为入口点,将请求分发到对应的控制器,然后由控制器调用服务层处理业务逻辑,最后将结果传递给视图层进行展示。 **Hibernate** Hibernate是一个强大的对象关系映射(ORM)框架,...

    Apress.Pro.Spring.4th.Edition

    - **Spring MVC**:Spring MVC是Spring框架的一个模块,用于构建Web应用程序。 - **WebSocket支持**:Spring还支持WebSocket,可用于实现实时通信功能。 #### 17. WebSocket - **WebSocket基础**:介绍了WebSocket...

    struts+hibernate+spring的ppt

    Spring MVC是Spring框架的一部分,提供了另一种实现MVC设计模式的方式,相比Struts,Spring MVC提供了更现代、更灵活的Web应用开发体验。 结合这三个框架,开发者可以构建出强大的Web应用,其中Struts处理HTTP请求...

    JSP小项目MVC模式资源

    - Spring MVC是一个流行的Java框架,它简化了在JSP中实现MVC模式的过程,提供了强大的依赖注入和AOP(面向切面编程)支持。 6. **应用场景**:MVC模式广泛应用于大型Web项目,如电商平台、社交网络等,它能帮助...

    Struts+Hibernate+Spring

    Spring还包含了事务管理、数据访问集成、邮件服务、任务调度等众多模块,使得开发者能构建复杂的企业级应用。 学习Struts+Hibernate+Spring架构,你需要理解以下几个关键点: 1. **MVC模式**:理解模型、视图和...

    spring-framework-reference4.3.1

    通过这些机制,Spring允许开发者以声明的方式管理对象间的依赖关系,从而使得代码更加灵活和可维护。 **2.2 模块划分** - **核心容器(Core Container)**:包含Spring框架的基本组成部分,如BeanFactory,它是工厂...

    JSP课程设计(JSP+MVC2)

    5. **使用MVC框架**:如Struts或Spring MVC,它们提供了更完善的MVC支持,简化开发流程,增强系统的稳定性和可维护性。 通过以上设计和实现,我们可以构建出一个功能完善、易于维护的图书馆管理系统,同时深入理解...

    spring boot WEB jsp普通项目例子.zip

    它允许将HTML、CSS和Java代码混合编写,提供了一种便捷的方式来处理服务器端逻辑。JSP页面由Web容器(如Tomcat)处理,转换为Servlet并在客户端展示。 3. Spring Boot与JSP的集成: Spring Boot默认使用Thymeleaf、...

    什么是MVC framework

    随着技术的发展,各种Web应用程序框架应运而生,如Struts、Spring MVC等。这些框架提供了更高级别的抽象和支持,简化了MVC模式的应用。 - **Struts**:基于Servlet的Java Web框架,提供了一套完整的解决方案来构建...

    spring boot+mybatis+jsp

    Spring Boot基于“约定优于配置”的原则,提供了一种快速启动和运行Spring应用的方式。通过内置的Tomcat服务器和自动配置特性,开发者可以迅速构建一个独立的、生产级别的应用。 **MyBatis** MyBatis是一个优秀的...

    深入浅出的理解框架SSH与MVC设计模式 - 副本.docx

    传统的Web开发,如使用JSP混合Java代码的方式,虽然简单直接,但存在可读性差、难以维护等问题。SSH框架的引入,将这些职责进行了明确划分,提高了代码的可读性和可维护性,使得团队协作更为高效。 以登录为例,...

    Spring 3.1.0 官网API

    Spring的AOP模块提供了一种在程序执行过程中插入关注点(如日志、事务管理)的方式。Spring 3.1.0增强了对AOP代理的控制,支持了CGLIB和JDK动态代理的混合使用,同时改进了切面的定义和处理。 3. **数据访问/集成*...

    Struts 2.3.1.2+Spring 3.1.1+mybatis 3.1.0 基础框架

    6. Struts 2或Spring MVC的Action类调用Service层方法,处理请求并返回结果。 7. 使用JSP创建视图,通过OGNL或EL表达式显示数据。 通过这个基础框架,开发者可以快速搭建一个具备基本功能的Java Web应用,并在此...

Global site tag (gtag.js) - Google Analytics