Struts2+Web常运用的功能经验笔记第1季-2

Struts2+Web常使用的功能经验笔记第1季--2

 

1.       Struts2JSON插件,让Struts2REST起来

利用Struts2json插件——struts2-json-plugin-2.1.8.jar(在Struts-all包中有此插件包)

首先看struts.xml的配置

<!DOCTYPE struts PUBLIC

        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

 

    <!-- 配置Struts2应用的编码集 -->

    <constant name="struts.objectFactory" value="spring" />

    <constant name="struts.i18n.encoding" value="UTF-8" />

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    <constant name="struts.devMode" value="false" />

 

    <!--基类包-->

    <package name="baseAdminJsonackage" extends="json-default"

       abstract="true">

 

       <global-results>

 

           <!--没有权限-->

           <result name="hasNoToken" type="redirect">

              hasNoToken.jsp

           </result>

 

           <!--进入页-->

           <result name="input" type="redirect">input.jsp</result>

 

           <!--错误页面-->

           <result name="error" type="redirect">error.jsp</result>

 

           <!--ajax返回Json信息-->

           <result name="successJson" type="json"></result>

       </global-results>

 

    </package>

   

    <!--后台管理相关-->

    <package name="administrator" extends="baseAdminJsonackage">

      

       <!--用户管理-->

       <action name="userAction"

           class="module.system.action.UserAction">

           <result name="success" type="redirect">

              /admin/jqgrid.jsp

           </result>

           <result name="loginSuccess" type="redirect">

              /admin/main.jsp

           </result>

           <result name="loginError" type="redirect">

              /admin/login.jsp

           </result>

       </action>

      

    </package>

</struts>

下面来看UserAction的部分代码:

public class UserAction extends BaseAction {

 

public List objectList;

 

    @JSON

    public List getObjectList() {

       return objectList;

    }

 

    public void setObjectList(List objectList) {

       this.objectList = objectList;

    }

 

    /**

     * ------------------------临时测试用

     *

     * @return

     */

    public String listTemp() {

 

       // 总记录数

       objectList = uxAdminDao.findAll();

 

       return "successJson";

    }

 

}

上面是返回到successJson的结果中,在web前端只要通过任何的http请求到

userAction! listTemp.action,返回的结果中就可以获得objectList变量的json格式字符串。前端如何解析,就是前端的事情了。