java ssm框架的controller实现向页面传递参数
作者:ConfidentWU
这篇文章主要介绍了java ssm框架的controller实现向页面传递参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
ssm的controller向页面传递参数
使用Map<String, Object> 来传递参数
在控制器的方法中添加一个Map类型参数A。给参数A的put方法put了键值对B,键值对B在页面中就可以获取到了
1.java 后台代码的编写,put了operation和application键值对
@RequestMapping("/edit_form") public String editApplicationFormPage(Map<String, Object> map, HttpServletRequest request, String applicationId) { map.put("operation", "edit"); Application application = applicationService .getApplicationById(applicationId); if(application.getSysBigIcon()==null||application.getSysBigIcon().equals("")){ application.setSysBigIcon("/www/images/default.png"); } if(application.getSysIcon()==null||application.getSysIcon().equals("")){ application.setSysIcon("/www/images/default.png"); } if (application != null) { map.put("application", application); } return "/frame/system/application/application_form"; }
2.页面使用后台传递过来的键值对
使用的方法是键值对要用${}包裹起来。 比如:${operation}和${application.orgId},${operation}是引用后台map put的operation键值对,${application.orgId}是引用后台map put的application实体的一个对象。
<script type="text/javascript"> window.WWWROOT = "${ctx}"; window.DefaultOrgId = "<%=user.getDefaultOrgId()%>"; window.Operation = "${operation}"; window.OrgId = "${application.orgId}"; window.TaskAppId = "${application.taskAppId}"; window.MenuType = "${application.menuType}"; </script> <title>${operation eq 'add'?'添加':(operation eq 'edit'?'编辑':'查看')}应用系统</title>
使用PrintWriter来传递参数
给PrintWriter写一些内容。就把这些内容返回到页面了。
1.后台台代码的编写
在控制器的方法中添加一个PrintWrite类型参数writer,使用writer.write()方法写入内容。页面就可以返回这内容了。代码如下:
@RequestMapping("/add") public void add(HttpServletRequest request, HttpServletResponse response,MenuRight menuRight, PrintWriter writer) { try{ Boolean result =menuRightService.addMenuRight(menuRight); writer.write("{\"success\":true}"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); writer.write("{\"success\":false}"); } }
2.页面的代码编写
success
: function(result)中的result就是后台返回的writer.write()中的内容
$.ajax({ type : 'POST', url : WWWROOT + "/menuRight/add", data : dat, success : function(result) { if ($.parseJSON(result).success == true) { $(stId).attr("checked", true); } else { alert("添加授权失败"); $(stId).attr("checked", false); } } });
ssm框架获取页面传递的参数
通过@RequestParam
接收名字为age的参数,且可以为空
@RequestParam(value = "age",required = false)
通过@PathVariable
通过@RequestBody –不适用于Get请求
- 1.@RequestBody 接收的是一个请求体, @RequestBody只能存在一个,接收的是所有的请求参数--一次接收完
- 2.如果传对象或者数组必须先转为Json格式\或者是纯字符串
- 3.@RequestBody 不适合用于Get请求
接收日期类型: @DateTimeFormat\@JsonFormat
@DateTimeFormat
使用场景:页面直接传递日期格式时,直接用该注解接收;@JsonFormat
使用场景:页面传递Json格式的日期格式时,使用该注解接收; 特别注意:使用不同的Json包该注解名可能不同
使用方法:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。