当前位置: 代码迷 >> Web前端 >> Struts2+Web常运用的功能经验笔记第1季-2
  详细解决方案

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

热度:303   发布时间:2012-11-19 10:18:51.0
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格式字符串。前端如何解析,就是前端的事情了。

?

  相关解决方案