1

我是 Struts 2 的新手,想在我的 Struts 应用程序中添加一些 jQuery,但我遇到了一些问题,我做了很多,但一无所获。

我想实现 Struts jQuery 选择标签,但有一些问题。这是我的代码

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <package extends="struts-default,json-default" name="default" namespace="/">           
            <action class="org.actions.JsonS" name="jsondata" >
                <result type="json" />
            </action>         
    </package>
</struts>

welcome.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>  
  <body>
    <s:url var="remoteurl" action="jsondata.action" />
    <sj:select href="%{remoteurl}" id="mylist" list="nolist" name="mylist" />
  </body>
</html>

JsonS.java

package org.actions;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class JsonS {
         private List<String> nolist;
         
         public String execute() {
             nolist = new ArrayList<String>();
             nolist.add("one");
             return ActionSupport.SUCCESS;
         }
         
         public String getJSON() {
             return execute();
         }

        public List<String> getNolist() {
            return nolist;
        }
}

当我手动检查 JSON 响应时,一切正常。我收到了这个回复。

{"JSON":"success","nolist":["one"]}

但是当我想将它与 Struts jQuery select 一起使用时,它不起作用,什么也没发生。

4

1 回答 1

0

更改 url 和 header 从

<head>
</head>  

<s:url var="remoteurl" action="jsondata.action" />

<head>
  <sj:head/>
</head>  

<s:url var="remoteurl" namespace="/" action="jsondata" />

对于这个和进一步的参考,要确保你在 war 构建中包含struts2-jquery 插件。

于 2013-06-13T11:00:08.010 回答