zoukankan      html  css  js  c++  java
  • struts2 convention-plugin

    导入这个插件,该插件的作用是替换掉struts.xml 原则是没有配置,全是约定

    基本步骤

      1.新建HomeAction,里面有个execute方法return success,请求home.action就这样就能执行这个

        约定:home就是以前配置中的action的name属性值,没有方法名就默认execute

            HomeAction→home.action
            StudentHomeAction→student-home.action

         包名,请求的action必须放在action,actions,strut,struts中
            com.kaishengit.action.HomeAction → /home.action
            com.kaishengit.action.product.HomeAction → /product/home.action
            com.kaishengit.action.product.type.HomeAction → /product/type/home.action

      2.添加jsp文件.文件名定义为home-success.jsp,就这样就能到达这个jsp 该文件必须在一个content文件夹内,但是可以修改这个    文件夹

            <constant name="struts.convention.result.path" value="/WEB-INF/views/"/>

            /home.action success →/WEB-INF/content/home-success.jsp
            /home.action input → /WEB-INF/content/home-input.jsp
            /product/home.action success → /WEB-INF/content/product/home-success.jsp

      3.对于请求方法和跳转方式要靠注解来实现

          在Homeaction中定义另一种方法
          @Action("main")加上注解,添加main-success.jsp请求locallhost/main.action

    @Action("main")
    public String main() {
        return SUCCESS;
    }

    跳转
    对于params,奇数代表键,偶数个代表值

    @Action(value="login",results={
                    @Result(name="success",type="redirectAction",params={"namespace","/admin","actionName","main"}),
                    @Result(name="input",type="redirectAction",params={"namespace","/admin","actionName","home","error","1001"})
                })
     public String login() {
         Admin currAdmin = adminService.login(admin);
         if(currAdmin == null) {
              return INPUT;
          } else {
               putSession("curr_Admin", currAdmin);
              return SUCCESS;
             }
      }

    4.对于主配置文件,struts.xml的常量设置,拦截器,global-result还是要自己配置

      但是对于过滤器什么的,convention是存在默认包的.所以要修改才行
      <constant name="struts.convention.default.parent.package" value="basePackage"/>

    5.命名空间 

    com.kaishengit.action.product.HomeAction → /product/home.action
    可以com.kaishengit.action.HomeAction→ /product/home.action
    要在HomeAction上注解@namespace("product")
    这时候请求到达的jsp都要在/content/product/xxxx

  • 相关阅读:
    用MySQL 生成随机密码增加大写处理
    【100题】第三十八 (天平称重、大输入流、去除重复URL)
    【编程珠玑】代码优化的27条经典法则
    cocos2dx:如何快速屏蔽触摸
    【2012百度之星资格赛】A:百度计算器的加法
    【2012百度之星资格赛】C:易手机的套餐
    去掉xcode编译warning:ld: warning: directory not found for option 'L
    【2012百度之星资格赛】D:共同狂欢
    【windows8开发】回复g10589119提出的问题(c#调用C++/CX dll)
    linux shell 之在线文本编辑sed
  • 原文地址:https://www.cnblogs.com/itliucheng/p/4462191.html
Copyright © 2011-2022 走看看