0

以下是我所做的。1.下载并使用所有jar 2.在WEB-INF中构建web.xml

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

<web-app id="WebApp_ID" version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    <display-name>Basic Strust 2 Project setup on Glassfish 3.0.1</display-name>

    <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>

然后在WEB-INF中设置struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "/WEB-INF/classes/struts-2.1.7.dtd">

<struts>
    <!--
    You could also set the constatnts in the struts.properties file
    placed in the same directory as struts.xml
    -->
    <constant name="struts.devMode" value="true" />

    <package name="test" extends="struts-default" namespace="/">

        <!--
        If no class attribute is specified the framework will assume success and
        render the result index.jsp
        If no name value for the result node is specified the success value is the default
        -->
        <action name="help">
            <result>/help.jsp</result>
        </action>

    </package>

</struts>

并在根文件夹中构建简单的 help.jsp。

我建立了动作类 help.java

import com.opensymphony.xwork2.ActionSupport;

public class help extends ActionSupport{
    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
}

实际上我认为现在我不需要这个 java 代码。

当我运行它并进入 help.action 时,它只是说 404 找不到,HTTP 状态 404 - 没有为命名空间 [/] 和操作名称 [help] 映射与上下文路径 [/131X] 关联的操作。

4

1 回答 1

0

您必须指定将分配给解析 .jsp 文件的操作类。在这种情况下help,类对此负责,因此您必须将其指定为标签中的class属性。actionstruts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "/WEB-INF/classes/struts-2.1.7.dtd">

<struts>
    <!--
    You could also set the constatnts in the struts.properties file
    placed in the same directory as struts.xml
    -->
    <constant name="struts.devMode" value="true" />

    <package name="test" extends="struts-default" namespace="/">

        <!--
        If no class attribute is specified the framework will assume success and
        render the result index.jsp
        If no name value for the result node is specified the success value is the default
        -->
        <action name="help" class="package_name.help">
            <result>/help.jsp</result>
        </action>

    </package>

</struts>

其中package_name是包含help类的包的名称。

于 2013-04-29T08:34:37.613 回答