springmvc返回值、数据写到页面、表单提交、ajax、重定向
2014-06-04 11:13
435 查看
转发的方法,转发到form.jsp实验是在前一篇文章的项目上做的;
* 文章包含被禁用的url,无法保存和发布。
太坑了,这个链接也屏蔽~
重启tomcat访问: http://localhost:8080/springmvc-2/test/toPerson4.do
输出信息正确;
http://localhost:8080/springmvc-2/test/toPerson5.do
输出正确;
重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson6.do
输出正确数据;
在TestController加
前台调用 新建ajax.jsp
<input id="myButton" type="button" value="click">
Webroot新建js文件夹将jquery拷贝进来;
引进来jquery 和写js脚本:
后台写一个转发:
重启tomcat 访问
http://localhost:8080/springmvc-2/test/toAjax.do
Click,弹出hello zhangsan,成功;
url:"test/ajax1.do",
重启tomcat 访问
http://localhost:8080/springmvc-2/test/toAjax.do
Click
弹出hello1 zhangsan;
转发的方法,转发到form.jsp
重启tomcat 访问:
http://localhost:8080/springmvc-2/test/toForm.do
提交跳转到
http://localhost:8080/springmvc-2/test/toPerson7.do
控制台输出
Person [name=aa, address=asdf, birthday=Tue Jun 03 00:00:00 CST 2014, age=22]
http://localhost:8080/springmvc-2/test/redirectToForm.do
重定向到
http://localhost:8080/springmvc-2/test/toForm.do
留这个
重启tomcat 访问
http://localhost:8080/springmvc-2/test/redirectToForm1.do
重定向到
http://localhost:8080/springmvc-2/test/toForm.do
jquery-1.6.2.js下载:
http://pan.baidu.com/s/1o6nwWP0
项目下载:http://pan.baidu.com/s/1pJwix2V
这篇文章写得不错可以看看:http://elf8848.iteye.com/blog/875830/
数据写到页面
后台往前台传数据
TestController添加/** * 方法的返回值采用ModelAndView, new ModelAndView("index", map);, * 相当于把结果数据放到request里面 * @return * @throws Exception */ @RequestMapping("/toPerson4.do") public ModelAndView toPerson4() throws Exception{ Person person = new Person(); person.setName("jerome"); person.setAge(22); person.setAddress("nanan"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse("2012-12-21"); person.setBirthday(date); Map<String,Object> map = new HashMap<String, Object>(); map.put("p", person); return new ModelAndView("jsp/index",map); }页面接收:index.jsp
<body> <h5>${p.name }</h5> <h5>${p.age }</h5> <h5>${p.address }</h5> <h5><fmt:formatDate value="${p.birthday }" pattern="yyyy-MM-dd"/></h5> </body>在jsp引入fmt标签库
* 文章包含被禁用的url,无法保存和发布。
太坑了,这个链接也屏蔽~
重启tomcat访问: http://localhost:8080/springmvc-2/test/toPerson4.do
输出信息正确;
另外一种方式:
/** * 直接在方法的参数列表中来定义Map,这个Map即使ModelAndView里面的Map * 由视图解析器统一处理,统一走ModelAndView的接口 * 也不建议使用 * @param map * @return * @throws Exception */ @RequestMapping("/toPerson5.do") public String toPerson5(Map<String,Object> map) throws Exception{ Person person = new Person(); person.setName("jerome"); person.setAge(22); person.setAddress("nanan"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse("2012-12-21"); person.setBirthday(date); map.put("p", person); return "jsp/index"; }重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson5.do
输出正确;
建议使用方式:
/** *在参数列表中直接定义Model,model.addAttribute("p", person); *把参数值放到request类里面去,建议使用 * @param map * @return * @throws Exception */ @RequestMapping("/toPerson6.do") public String toPerson6(Model model) throws Exception { Person person = new Person(); person.setName("jerome"); person.setAge(22); person.setAddress("nanan"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse("2012-12-21"); person.setBirthday(date); //把参数值放到request类里面去 model.addAttribute("p", person); return "jsp/index"; }
重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson6.do
输出正确数据;
不需要页面跳转:ajax
后台方法:在TestController加
/** * ajax的请求返回值类型应该是void,参数列表里直接定义HttpServletResponse, * 获得ProntWriter的类,最后可把结果写到页面 * 不建议使用 * @param name * @param response */ @RequestMapping("/ajax.do") public void ajax(String name, HttpServletResponse response) { String result = "hello " + name; try { response.getWriter().write(result); } catch (IOException e) { e.printStackTrace(); } }
前台调用 新建ajax.jsp
<input id="myButton" type="button" value="click">
Webroot新建js文件夹将jquery拷贝进来;
引进来jquery 和写js脚本:
<script type="text/javascript" src="js/jquery-1.6.2.js"></script> <script type="text/javascript"> $(function(){ $("#myButton").click(function(){ $.ajax({ url:"test/ajax1.do", type:"post", dataType:"text", data:{ name:"zhangsan" }, success:function(responseText){ alert(responseText); }, error:function(){ alert("system error"); } }); }); }); </script>
后台写一个转发:
@RequestMapping("/toAjax.do") public String toAjax() { return "jsp/ajax"; }
重启tomcat 访问
http://localhost:8080/springmvc-2/test/toAjax.do
Click,弹出hello zhangsan,成功;
以上方法不建议使用,建议使用:
/** * 直接在参数的列表上定义PrintWriter,out.wrote(result); * 把结果写到页面,建议使用 * @param name * @param out */ @RequestMapping("/ajax1.do") public void ajax1(String name, PrintWriter out) { String result="hello1 "+name; out.write(result); }修改ajax.jap页面的,js脚本,跳转的url是
url:"test/ajax1.do",
重启tomcat 访问
http://localhost:8080/springmvc-2/test/toAjax.do
Click
弹出hello1 zhangsan;
表单:
拷贝一份index,起名form.jsp<body> <form action="test/toPerson7.do" method="post"> name:<input name="name" type="text"><br/> age:<input name="age" type="text"><br/> address:<input name="address" type="text"><br/> birthday:<input name="birthday" type="text"><br/> <input type="submit"><br/> </form>TestController
@RequestMapping("/toPerson7.do") public String toPerson7(Person person) { System.out.println(person); return "jsp/index"; }
转发的方法,转发到form.jsp
@RequestMapping("/toForm.do") public String toForm() { return "jsp/form"; }
重启tomcat 访问:
http://localhost:8080/springmvc-2/test/toForm.do
提交跳转到
http://localhost:8080/springmvc-2/test/toPerson7.do
控制台输出
Person [name=aa, address=asdf, birthday=Tue Jun 03 00:00:00 CST 2014, age=22]
请求方式的指定:
后台可以指定提交方法,如果前台不是用的同一种提交方式 将报错;/** * @RequestMapping(value="/toPerson7.do",method=RequestMethod.POST) * 可以指定请求方式,前台就必须要以它制定好的方式来访问,不然会出现405错误 * @param person * @return */ @RequestMapping(value="/toPerson7.do",method=RequestMethod.POST) public String toPerson7(Person person) { System.out.println(person); return "jsp/index"; }Form.jap的method修改为get和post测试;
重定向:
同一个 controller
/** * 重定向:controller内部重定向,redirect:加上同一个controller中 * 的requesMapping的值 * @return */ @RequestMapping("/redirectToForm.do") public String redirectToForm() { return "redirect:toForm.do"; }重启tomcat 访问:
http://localhost:8080/springmvc-2/test/redirectToForm.do
重定向到
http://localhost:8080/springmvc-2/test/toForm.do
Controller之间的重定向:
拷贝一份TestController改成TestController1留这个
@Controller //用来标注当前类是springmvc的控制层的类 @RequestMapping("/test1") //controller的唯一标识或者命名空间 public class TestController1 { @RequestMapping("/toForm.do") public String toForm() { return "jsp/form"; } }TestController 添加
/** * controller之间的重定向:必须要指定好controller的命名空间再 * 指定requestMapping的值,redirect:后必须要加/,是从根目录开始, * 否则就从当天test找了 * @return */ @RequestMapping("/redirectToForm1.do") public String redirectToForm1() { return "redirect:/test1/toForm.do"; }
重启tomcat 访问
http://localhost:8080/springmvc-2/test/redirectToForm1.do
重定向到
http://localhost:8080/springmvc-2/test/toForm.do
jquery-1.6.2.js下载:
http://pan.baidu.com/s/1o6nwWP0
项目下载:http://pan.baidu.com/s/1pJwix2V
这篇文章写得不错可以看看:http://elf8848.iteye.com/blog/875830/
相关文章推荐
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- 学习笔记_springmvc返回值、数据写到页面、表单提交、ajax、重定向
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- 学习笔记_springmvc返回值、数据写到页面、表单提交、ajax、重定向
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- jsp页面的ajax和form表单提交后接收数据的区别(SpringMVC控制器返回Map对象)
- springMVC接受ajax提交表单,json数据的两种方式
- AJax提交表单数据到后台springmvc接收
- JQuery -AJAX- html中提交表单并实现不跳转页面处理返回值
- SpringMVC+Ajax页面无刷新提交多个文件和数据
- PHP Ajax,FormData收集表单数据(包括文件) 页面无刷新上传文件(提交表单)
- 黄聪:C#模拟网站页面POST数据提交表单(一)--WebClient (转)
- 页面编码为GBK时 jquery 提交ajax数据完美解决中文乱码方案
- ASP.NET MVC 3.0:基于Ajax的表单提交,A页面认证失败后页面被强转至登录页面,待登录成功将如何回到A页面?
- Ajax异步提交表单数据简单方法
- 一段用于编辑页面表单并使用ajax提交与无刷新获取的js段落
- 页面编码为GBK时_jquery_提交ajax数据完美解决中文乱码方案
- 把HTML表单提交的数据转化成XML文件-XML+Ajax教程
- .net 防止页面刷新重复提交(表单提交后保留上一次数据缓存,刷新提交)