繁体   English   中英

使用Struts 2.2.x的简单JSON示例?

[英]Simple JSON example using Struts 2.2.x?

我无法在Struts 2.2.1.1中获得JSON结果。

有没有人有一个简单的工作示例,该示例使用Struts 2.2.1.1将JSON结果返回到JSP,并准备作为动态Web项目Eclipse中运行?

请包括struts.xml,操作类和JSP代码。 另外,请注意依赖项。 谢谢。

这是使用Struts 2 jQuery插件创建简单JSON示例的方法。

  1. 转到Struts2 jQuery插件展示
  2. 导航到Ajax表单>按钮集/复选框
  3. 查看从AJAX JSON结果填充的Buttonset代码。 这是我选择创建一个简单示例的代码。
  4. 在Eclipse中创建动态Web项目
  5. 创建一个Java包并将其命名为test
  6. 下载Struts 2 jQuery插件展示源struts2-jquery-showcase-xxx-sources.jar )并解压缩JAR文件。
  7. Echo.javaJsonSample.javaListValue.java导入测试包,并通过快速修复将代码移动到包中。
  8. Echo.javaJsonSample.java的类批注更改为@ ParentPackage(value = "test")
  9. 除了标准的Struts 2库之外,请确保struts2-json-plugin-xxxjarstruts2-jquery-plugin-xxxjarstruts2-convention-plugin-xxxjar文件位于您的类路径中。
  10. 创建一个struts.xml文件并添加以下XML:

     <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.convention.action.packages" value="test" /> <package name="test" extends="json-default” namespace="/"> </package> </struts> 
  11. 创建一个index.jsp文件并插入以下代码:

     <s:form id="form2" action="echo" theme="xhtml"> <s:url id="remoteurl" action="jsonsample" /> <sj:checkboxlist href="%{remoteurl}" id=“remoteCheckboxlist” name="echo" list="languageList" label="Language" /> <sj:submit targets="formResult" value="AJAX Submit" indicator=“indicator” button="true"/> </s:form> 
  12. 运行示例。

试试这个,将在jsonplugin-0.32.jar中帮助您在Struts 2.0.14中使用。

struts.xml中:

<struts>
     <package name="example" extends="json-default">
        <action name="HelloWorld" class="example.HelloWorld"  >
            <result type="json" />
        </action>
              <action name="HelloWorld1" class="example.HelloWorld"  >
            <result name="success" >example/HelloWorld.jsp</result>
        </action>
    </package>
</struts>

动作类Helloworld.java:

package prabhakar;

import glb.DB;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Prabhakar
 */
public class HelloWorld  {


    private List<StateMaster> stateList= new ArrayList<StateMaster>();
    private List<RegnMaster> regnList= new ArrayList<StateMaster>();

    private Integer stateId;
    public Integer getStateId()
    {
    return this.stateId;
    }
    public void setStateId(Integer stateId)
    {
    this.stateId=stateId;
    }
    public List<StateMaster> getStateList() {
        return stateList;
    }

    public void setStateList(List<StateMaster> stateList) {
        this.stateList = stateList;
    }
     public void setRegnList(List<RegnMaster> regnList) {
        this.regnList = regnList;
    }
    public List<RegnMaster> getRegnList() {
        return regnList;
    }

    public String execute() throws Exception {

        stateList=DB.getStateData()//
        if(stateId !=null)
          {
         regnList=DB.getRegnByStateId(stateId);
          }

        //setMessage(getText(MESSAGE));
        return "success";
    }

    /**
     * Provide default valuie for Message property.
     */

}

您可以直接调用HelloWorld.action来查看JSON数据,也可以将JSON数据绑定到下面的表单元素。

JSP页面HelloWorld.jsp:

  /*
     Prabhakar
  */

<%@ page contentType="text/html; charset=UTF-8" %>

<%@ taglib prefix="s" uri="/struts-tags" %>
<script>
<%@include file="../js/jquery-1.7.1.min.js"%>
</script>
    <html>

<!-- JavaScript Plugins -->
  <script>
       function getLoad(){


       var stateId = $('#state').val();

$.getJSON('HelloWorld.action', {'stateId': stateId},
    function(data) {

           var divisionList = (data.regnList);

                var options = $("#regn");
                options.find('option')
    .remove()
    .end();
     options.append($("<option />").val("-1").text("--Select--"));
$.each(divisionList, function() {

    options.append($("<option />").val(this.regnId).text(this.regnName));
});
    }
);}
   </script>

<!-- jQuery-UI Dependent Scripts -->

    <body>
        State List <s:select name="stateId" list="stateList" id="state" listKey="stateId" onchange="getLoad()" listValue="stateName" headerKey="0" headerValue="--select--" />
        Regn List <s:select name="regnId"  list="regnList" listKey="regnId" id="regn" listValue="regnName" headerKey="0" headerValue="--select--" />
    </body>
</html>

快乐的编码:)

必须查看 :struts2-xxx-all.zip /apps/struts2-showcase-2.2.1.war

Struts 2和JSON示例
Struts 2自动完成器+ JSON示例

让Json与struts2一起工作非常简单。

为了这,

  1. 您需要将struts-json插件* (jsonplugin-0.32.jar) *添加到类路径。

  2. 您的struts.xml文件应扩展为json-default

     <package name="base" namespace="/" extends="json-default"> 
  3. 您的动作结果就是这样。

     <result type="json"><param name="root">jsonData</param></result> 
  4. 在动作类内部,将json声明为

private LinkedHashMap<K, V> jsonData new LinkedHashMap<k, V>();

然后将结果列表添加到json这样

jsonData.put("result", anyList or object);

那就是我们要做的。 然后,我们可以使用javascript访问结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM