2016-05-07 11 views
1

私はstrutsの例を持っていますが、index.jspにアクセスできましたが、success.jspにアクセスできず、HTTP 404エラーが発生しました。誰かが私を助けてくれましたか、事前に感謝します。 私のプロジェクトの構造は次のとおりです。 Project Structure簡単なstrutsの例でjspが見つかりません

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 
    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_2_5.xsd"> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <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.0//EN" 
     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <package name="default" extends="struts-default"> 
     <action name="hello" class="com.action.IndexAction"> 
      <result name="success">/views/success.jsp</result> 
     </action> 
    </package> 
</struts> 

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf8"%> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
    <title>My JSP 'success.jsp' starting page</title> 
    </head> 

    <body> 
    <h2><s:property value="message"/></h2><br> 
    </body> 
</html> 

IndexAction.java

package com.action; 

import com.opensymphony.xwork2.ActionSupport; 

public class IndexAction extends ActionSupport { 
    private static final long serialVersionUID = 1L; 
    private static final String MESSAGE = "struct is running"; 
    private String message = ""; 

    @Override 
    public String execute() throws Exception { 
     setMessage(MESSAGE); 
     return SUCCESS; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 
} 
+0

。 –

答えて

1

アプリケーション構造によれば、あなたはsuccess.jspを入れたかもしれないが/WEB-INF /ビューの下にあります。そう

<result name="success">/views/success.jsp</result>

<result name="success">/WEB-INF/views/success.jsp</result>

が修正される:

Struts.xml:のための行動だ

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <package name="default" extends="struts-default"> 
     <action name="hello" class="com.action.IndexAction"> 
      <result name="success">/WEB-INF/views/success.jsp</result> 
     </action> 
    </package> 
</struts> 
+0

omg、あなたは正しいです、私はこの問題に何時間も立ち往生しています。どうもありがとう、私はいつも名前空間と混同しています。ありがとう。 :) – Xin

+0

あなたの問題は解決しましたか?あなたが答えを受け入れるならば、それはあなたの問題が答えで解決されたことを意味します。 – CrawlingKid

+0

@Xinこれは名前空間に関する問題ではなく、ファイルへのパスを提供しないという問題です。 –

関連する問題