首页 > 开发 > JAVA > 正文

使用struts开发restful风格网站

2016-07-25 21:44:42  来源:慕课网
  struts是基于MVC设计模型的一只开源框架,它作为一个前端过滤器(拦截器),将用户的请求拦截分发给后端处理,并依赖一定的约定给出响应。
  而Restful是一种简约规范的设计风格,层次分明的同时更易前端缓存。
在REST中,每一个对象都是通过URL来表示的,对象用户负责将状态信息打包进每一条消息内,以便对象的处理总是无状态的。
于是开发人员可以轻松使用 Ajax 和 RESTful Web 服务一起创建丰富的界面。
  使用struts开发restful风格网站,需经过一下几个主要步骤。
首先在web.xml中配struts拦截器
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>   在struts.xml无需过多配置,简单几句即可。
<struts> <!-- 关闭动态方法 action:方法名 --> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <!-- 启用开发者模式 --> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="utf-8"/> </struts>  以简单的注册为例,在前端发送ajax请求:
$.ajax({ type:"post", data:$("#myform").serialize(), //表单序列化,需给每个input标签name属性,对应后台的模型对象属性 url:"voteUser_register.action", //后端的action处理地址 dataType:"json", //返回json数据 success:function(data){ if(data.code== 1){ alert("注册成功!"); location.href="login.html"; }else{ alert("注册失败!原因"+data.msg); } }});  后端采用注解方案,当前端请求地址为voteUser_register.action时,其对应处理的方法是register(),调用方法成功返回success后返回一个jsonModel(json数据)给客户端,完成注册步骤。
且需要在其对应的action方法中配置
@Namespace(“/”) //路径@ParentPackage(“json-default”) //继承包@Action(value="/voteUser_register",results=@Result(type="json",name="success",params={"root","jsonModel","excludeNullProperties","true","noCache","true"}))//root,指返回对象 excludeNullProperties 指去除json数据中的空值 ,noCache 指无缓存,键值对形式配置public String register(){ jsonModel = new JsonModel(); if(user.getUname()!=null&&user.getPwd()!=null){ try{ service.saveOrUpdate(user); jsonModel.setCode(1); }catch(Exception e){ e.printStackTrace(); jsonModel.setCode(0); jsonModel.setMsg("user dose not exit"); } }else{ jsonModel.setCode(0); jsonModel.setMsg("user dose not exit"); } return "success";}