为了账号安全,请及时绑定邮箱和手机立即绑定

使用struts开发restful风格网站

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";
}
点击查看更多内容
12人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
22
获赞与收藏
397

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消