当前位置: 首页 > 知识库问答 >
问题:

如何修改struts-dojo和/或struts-jQuery(Struts2.3.20.1)中的路径?

容学林
2023-03-14

在我开始我的问题之前,这里是我的开发设置:

  • 支柱 2:2.3.20.1
  • 瓷砖 2:2.0.6
  • Struts2-DoJo-插件:2.3.20.1
  • Struts2-JQuery-插件:3.7.1
  • TomEE 7.0.55
  • 爪哇 8: 1.8.0_25
  • IDE: 智能 2016.2 旗舰版

现在我的问题:

我想在Struts2-Dojo或*-JQuery中使用DateTimePicker,但对于这两个API,我在生成的超文本标记语言方面都获得了错误路径。

看看这些图片,我的结果是什么:

你看到我的问题了吗?双破折号?为什么是Struts?这是瓷砖的问题吗?

我只需要一个破折号,我以前在这个链接上查阅过这个社区:Struts2-DOJO中的相对路径

...并对此进行测试(您可以在下面的 BaseLayout 下看到.jsp它对我的问题不起作用。

这里是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
    <display-name>Struts Tiles 2 Demo</display-name>
    <context-param>
        <param-name>tilesDefinitions</param-name>
        <param-value>/WEB-INF/tiles.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

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

    <!--suppress InjectedReferences -->
    <package name="default" extends="struts-default" namespace="/">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
        </result-types>

        <default-action-ref name="start"/>

        <action name="start">
            <result name="success" type="tiles">index</result>
            <result name="error" type="tiles">err404</result>
        </action>

        <action name="err404">
            <result name="success" type="tiles">err404</result>
        </action>

        <action name="dbTest">
            <result name="success" type="tiles">dbTest</result>
            <result name="error" type="tiles">err404</result>
        </action>

        <action name="dtpJQ">
            <result name="success" type="tiles">dtpJQ</result>
            <result name="error" type="tiles">err404</result>
        </action>
    </package>
</struts>

tiles.xml:

<!DOCTYPE tiles-definitions PUBLIC
        "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
        "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

    <definition name="baseLayout" template="/WEB-INF/tiles/layouts/BaseLayout.jsp">
        <put-attribute name="title" value="" />

        <put-attribute name="header" value="/WEB-INF/tiles/parts/Header.jsp" />
        <put-attribute name="menu" value="/WEB-INF/tiles/parts/Menu.jsp" />

        <put-attribute name="body" value="" />
        <put-attribute name="footer" value="/WEB-INF/tiles/parts/Footer.jsp" />

        <!-- only true or false -->
        <put-attribute name="isDojoActive" value="false" />
        <put-attribute name="isJQueryActive" value="false" />
    </definition>

    <definition name="index" extends="baseLayout">
        <put-attribute name="title" value=".: 1st Steps Base Layout Struts 2 :." />
        <put-attribute name="body" value="/WEB-INF/tiles/body/start.jsp" />
    </definition>

    <definition name="err404" extends="baseLayout">
        <put-attribute name="title" value=".: Test Error 404 Page :." />
        <put-attribute name="body" value="/WEB-INF/tiles/errorPages/404.jsp" />
    </definition>

    <definition name="dbTest" extends="baseLayout">
        <put-attribute name="title" value=".: DB Test :." />
        <put-attribute name="body" value="/WEB-INF/tiles/tableViews/dbTest.jsp" />
    </definition>

    <definition name="dtpTest" extends="baseLayout">
        <put-attribute name="title" value=".: Date Time Picker Test - START :." />
        <put-attribute name="body" value="/WEB-INF/tiles/body/testDTP.jsp" />
        <put-attribute name="isDojoActive" value="true" />
    </definition>

    <definition name="dtpJQ" extends="baseLayout">
        <put-attribute name="title" value=".: DTP JQ TEST :." />
        <put-attribute name="body" value="/WEB-INF/tiles/modules/dateTimePickerJQuery.jsp" />
        <put-attribute name="isJQueryActive" value="true" />
    </definition>

    <definition name="dateTimePicker" extends="baseLayout">
        <put-attribute name="title" value=".: Date Time Picker Test :." />
        <put-attribute name="body" value="/WEB-INF/tiles/modules/dateTimePicker.jsp" />
    </definition>
</tiles-definitions>

基本布局.jsp:

<%@page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="tiles"  uri="http://tiles.apache.org/tags-tiles" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@taglib prefix="sx" uri="/struts-dojo-tags" %>
<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title><tiles:insertAttribute name="title" ignore="true" /></title>
    <style type="text/css">@import url(/css/main.css);</style>
    <s:set var="isDojoActive"><tiles:getAsString name="isDojoActive" /></s:set>
    <s:set var="isJQueryActive"><tiles:getAsString name="isJQueryActive" /></s:set>
    <s:if test='%{#isDojoActive.equals("true")}'>
        <sx:head baseRelativePath="/struts/dojo" debug="true" parseContent="false" />
    </s:if>
    <s:if test='%{#isJQueryActive.equals("true")}'>
        <sj:head />
    </s:if>
</head>
<body>
<div class="container">
    <div id="baseLeft"><tiles:insertAttribute name="menu" /></div>
    <div id="baseRight">
        <div class="inner-content header center"><tiles:insertAttribute name="header" /></div>
        <div class="inner-content body"><tiles:insertAttribute name="body" /></div>
        <div class="inner-content footer right"><tiles:insertAttribute name="footer" /></div>
    </div>
</div>
</body>
</html>

共有1个答案

胡越
2023-03-14

我发现了错误:

我在IntelliJ IDEA下的TomEE配置:

缺少根/应用程序上下文。

 类似资料:
  • 问题内容: 我有以下(缩短的)struts2操作: 当我执行’cookiesMap.containsKey’时,我得到一个空指针异常- 在我看来setCookiesMap没有被调用。我已经实现了CookiesAware接口,所以我以为 应该 调用它-我在这里错过了什么吗? 谢谢 问题答案: 看起来struts仅支持读取cookie,您必须转到servlet响应以实际 设置 cookie。 最后,我

  • 问题内容: 我已经回顾了关于Struts 1 vs 2的几个问题,但是似乎没有一个人以我的观点来回答这个问题。 我将开始着手构建一个新系统,对一个非常老的桌面应用程序进行彻底的重新设计。目标是使其成为基于Web的网站,添加更多功能,使其更易使用等(通常的重新设计原因)。 将要开发该系统的团队主要是Java开发人员,并且在过去5年中广泛地研究了Struts1.x。 该系统打算使用很多年,因此,当一个

  • 问题内容: 我们在弹簧框架4(https://struts.apache.org/docs/spring- plugin.html )中使用Struts 2 。我对Struts bean的创建有一些疑问。 当我们使用Struts和Spring,我们可以很容易地采用弹簧,,在,并且, 没有 注释其中的任何(或)。这 似乎 是支柱创建的对象是Spring管理豆。 这是不正确的,因为当您查看时,找不到任

  • Struts Plus, Struts + 项目, 计划包含极速表单验证框架, 权限管理等子模块. 目前主要关注于 Struts 2 方面的生产力提高项目, 主要基于注解方式进行增强, 并提供抽象层, 使项目仅仅依赖于 Struts 本身, 而不需要强制您使用某种业务层和数据层框架.

  • 问题内容: 我正在尝试为HTML网页构建滑块。它从struts动作从ArrayList(名为testList)获取值。我想以这种模式一次显示列表中的6个值。例如: 如果数组的大小为26,{0,1,2,3,4,5},则{6,7,8,9,10,11},然后是{11,12,13,14,15} ..和因此,直到{24,25},即使其为零也可以保留其他值。 每个循环都类似: 但是目前我以这种模式从列表中获取