java - 未使用 sj 渲染数据 :select tag in Struts 2

标签 java jsp struts2 struts2-jquery

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

我想实现 Struts jQuery select 标签,但遇到一些问题。这是我的代码

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 一起使用时,它不起作用,什么也没有发生。

最佳答案

更改网址和 header

<head>
</head>  

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

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

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

对于此引用和进一步的引用,要工作,请确保您有 struts2-jquery plugin包含在 war 构建中。

关于java - 未使用 sj 渲染数据 :select tag in Struts 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085054/

相关文章:

java - 以生产就绪方式执行 bazel-buildfarm,无需 "bazel run"

java - PHP Java 桥 - JEE 服务器

java反射调用函数

java - 如何从 TextField 标签更新 struts 2 列表

json - 在许多 div + Struts2 中加载 JSON 的一部分

java - 本地创建的对象被另一个全局对象引用时会发生什么

java - 网页中的等待图像

java - Spring MVC 中的sample_en.jsp 和sample_fr.jsp

jsp - 如何在 Struts 2 中使用 ajax 请求映射 Action 类

java - 性能泄漏的数据表中 JasonArray 的最大容量是多少?