当前位置: 首页 > news >正文

网站建设制作哪家便宜定制网站建设电话

网站建设制作哪家便宜,定制网站建设电话,彩票代购网站建设,尚云网站建设一、数据放入到request域当中 1、把获取的数据放入request域中&#xff0c; 方便在跳转页面去显示 <a>添加主人信息</a> <form action"vote/vote04" method"post" >主人id&#xff1a;<input type"text" name"id&q…

 一、数据放入到request域当中

1、把获取的数据放入request域中, 方便在跳转页面去显示 

<a>添加主人信息</a>
<form action="vote/vote04" method="post" >主人id:<input type="text" name="id"><br>主人名:<input type="text" name="monsterName"><br>宠物名:<input type="text" name="pet.petName"><br><input type="submit" value="提交" ><br>
   @RequestMapping(value = "/vote04")public String vote04(Monster monster, HttpServletRequest request,HttpServletResponse response){System.out.println("请求到vote04");request.setAttribute("monster", monster);request.setAttribute("address","湖州");return "voteOK";}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>获取参数成功地址:   ${address}<br>主人名字:${requestScope.monster.monsterName}<br>主人信息:${requestScope.monster}<br>
</body>
</html>

2、通过请求的方法参数Map<String,Object>, springMVC自动将map参数的内容放入reguest域

<%--确保这里的name与bean的属性名一致,否则拿不到值--%>
<a>添加主人信息</a>
<form action="vote/vote05" method="post" >主人id:<input type="text" name="id"><br>主人名:<input type="text" name="monsterName"><br>宠物名:<input type="text" name="pet.petName"><br><input type="submit" value="提交" ><br>
</form>
   @RequestMapping(value = "/vote05")public String vote05(Monster monster, Map <String,Object> map){map.put("monster", monster);map.put("Address", "BEIJING");return "voteOK";}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>获取参数成功地址:   ${address}<br>主人名字:${requestScope.monster.monsterName}<br>主人信息:${requestScope.monster}<br>

3、通过返回一个ModelAndView对象实现request域数据

1>从本质看,请求响应的方法return"xx",好像是返回了一个字符串,其实本质都是返回了一个ModeIAndView对象,只是默认被封装起来的.

2>ModelAndView即可以包含model数据,也可以包含视图信息
3>ModelAndView对象的addObject方法可以添加 key-val数据,默认在request域中4>ModelAndView对象setView方法可以指定视图名称

<%--确保这里的name与bean的属性名一致,否则拿不到值--%>
<a>添加主人信息</a>
<form action="vote/vote06" method="post" >主人id:<input type="text" name="id"><br>主人名:<input type="text" name="monsterName"><br>宠物名:<input type="text" name="pet.petName"><br><input type="submit" value="提交" ><br>
</form>
  @RequestMapping(value = "/vote06")public ModelAndView vote06(Monster monster){//创建一个modleANDViewModelAndView modelAndView = new ModelAndView();modelAndView.addObject("monster", monster);modelAndView.addObject("address", "杭州");modelAndView.setViewName("voteOK");return modelAndView;}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>获取参数成功地址:   ${address}<br>主人名字:${requestScope.monster.monsterName}<br>主人信息:${requestScope.monster}<br>
</body>

二、将数据放入到session域中

1、通过@SessionAttributes实现将数据放入session域

首先,在handler上写一个@SessionAttributes注解

@SessionAttributes(value = "myMaster")
@RequestMapping(value = "/vote")
@Controller
public class VoteHandler {

只要有一个map的形参,调用了put方法,且key值与@SessionAttributes相同,就会被自动放入到session域中 

@RequestMapping(value = "/vote07")public String vote07(Map <String,Object> map,Monster monster){map.put("myMonster",monster);map.put("address","SHANGHAI");return "voteOK";}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>获取参数成功地址:   ${address}<br>主人名字:${requestScope.monster.monsterName}<br>主人信息:${requestScope.monster}<br>主人名字(session):${sessionScope.myMonter.monsterName}<br>主人信息(session):${sessionScope.myMonter}<br></body>

三、通过@ModelAttribute实现prepare方法

小结

注意当我们给Handler的某个方法前增加了注解@ModelAttribue后,则该方法就会在任何一个目标方法前调用,这样程序员就可以在调用目标方法前,准备相应的model,并做预处理.

1、什么是prepare方法

@ModelAttribute 被这个方法修饰,
    // 会在该handler的所有方法被调用前,去调用

public class VoteHandler {@ModelAttribute //@ModelAttribute 被这个方法修饰,// 会在该handler的所有方法被调用前,去调用public void testPrepare(){System.out.println("preparing......");}
 @RequestMapping(value = "/vote08")public String vote08(){System.out.println("update......");return "voteOK";}
<a href="vote/vote08">测试prepare</a>

 

2、 @ModelAttribute最佳实践

该案例概述:

在做update操作时,我们只提交编号,名字,那么后端还需要判断前端提交了哪几个字段,要对其更新,比较麻烦。于是出现了如下案例,在更新操作前先做预处理

先上原理图,看看记得吗

<body>
<a href="vote/vote08">测试prepare</a><h1>修改人员</h1>
<form action="person/person01" method="POST">
<%--    为了让handler获取到id,将id值藏入隐藏域--%><input type="hidden" name="id" value="100">
<%--    指定我们的请求方式,让HiddenHttpMethodFilter转换--%><input type="hidden" name="_method" value="PUT">编号:<input type="text" disabled="disabled" name="id" value="100"><br>名字:<input type="text" name="name" ><br><input type="submit" value="点击修改"></body>

@RequestMapping(value = "/person")
@Scope(value = "prototype")
@Controller
public class PersonHandler {@ModelAttributepublic void personPre(@RequestParam(value = "id" ,required= false)Integer id, Map<String,Object> map){//获取到要修改的person的idif(id != null){//然后通过id到数据库去查找对应的person//假定我们从数据库中获取到这个id = 100 的personPerson person = new Person();person.setId(100);person.setName("jkl");person.setAddress("china");//把这个person放入到mapzhong ,注意名字,一定要和目标方法的javabean的// @ModelAttribute中的名字一样!!!!!!!map.put("person",person);System.out.println("hashCode1 = "+person.hashCode());//然后给updatePerson}}/***1.在当目标方法的参数中有一个和页面对应的javabean信息时,*    springMVC就会将jsp提交的数据封装到目标方法的javabean(person)中*2.并将javabean对象放入到request域。*3.在默认情况下,放入到request域中的javabean对象的属性是该Javabean的类名首字母***小写的Person person2,*   即这里的Person类名的person*4.其实,如果你的目标方法有一个javabean对象,那么该java对象前,默认会有*@ModelAttribute(value="person")*即public String updatePerson(Person person2)等价* public String updatePerson(@ModelAttribute(value="person") Person person2)*5.如果我们改变默认放在request域中的javabean的属性名,则可以直接修改*@ModelAttribute(value="person")的值@ModelAttribute(value="myperson")*/@RequestMapping(value = "/person01",method = RequestMethod.PUT)public String updatePerson(Person person) {System.out.println("person01 = "+person);System.out.println("hashCode2 = "+person.hashCode());return "personOK";}
}

 控制台输出,请注意,hashCode1 = hashCode2 (要充分理解请看原理图)

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true"
isELIgnored="false" %>
<html>
<head><title>Title</title>personid: ${requestScope.person.id} <br>personname:${requestScope.person.name}<br>personAddress:${requestScope.person.address}<br>
</head>
<body>

 四、目标方法获取javaBean的流程

使用注意事项(考点):
5.目标方法实际上获取javabean对象的流程为
(1).先从隐含Map(类似于Struts2中的值栈,即在方法调用前创建了该Map)中获取对应的对象.若有,则返回,传给目标方法的目标参数
(2).若没有,则检查是否需要从Session获取.若需要,则从Session中获取,若Session中有,则直接返回,若没有,则抛出异常.
(3)若不需要从Session中获取,其Map中也没有,则直接通过反射来创建对象,并放入到到map中(即request域中)
(4)把表单的参数投射到bean的对相应的属性上,这样在jsp页面上也可以去使用这些数据

http://www.hkea.cn/news/125621/

相关文章:

  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎
  • 橙色企业网站模板域名注册购买
  • 培训建设网站线上推广产品
  • 写作网站不屏蔽全网关键词指数查询
  • wordpress手机uiseo关键词的选择步骤
  • 自己制作网页的步骤windows优化大师在哪里
  • 黑龙江企业信息系统seo推广优化外包公司
  • wordpress+增加域名赣州网站seo
  • 政府门户网站建设思路怎样优化网络
  • 厦门个人网站建设百度账户代运营
  • 企业网站开发注意什么企业网站官网
  • 网站建设开发合同书关键词怎么找出来
  • 常州微信网站建设附子seo
  • 上海网站seo招聘十种营销方式
  • 农产品网络营销模式百度推广怎么优化
  • 公司网站维护如何做分录自己搭建一个网站
  • 做期货浏览哪些网站网络优化工程师前景如何
  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法
  • 厦门做点击付费网站培训教育