3

我正在开发一个 Spring 3.1 MVC 应用程序,并且我的浏览器中根本没有呈现一个 JSP。相反,我看到一条消息“请求的资源 () 不可用”。任何人都可以帮忙吗?这是我的错误信息。

    HTTP Status 404 - 

--------------------------------------------------------------------------------

type Status report

message 

description The requested resource () is not available.

这是GuestBook.jsp。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="myTag" uri="commentsTag"%>
<html>
<head>
<title>Granada High School Class of 1986 Comment Page</title>
<!-- Put a confirmation message here once you
     figure out how to do it with Spring -->
<style type="text/css">
p {
    text-align: justify;
}

h1 {
    text-align: center;
}
</style>
</head>
<body>
    <h1>Granada High School Class of 1986 Guest Book</h1>
    <%@ include file="menu.jsp"%><br>
    <b><font color="red"><c:out value='${confirmation}' /></font></b>
    <c:remove var="confirmation" scope="session" />
    <p>This page is a place where you can share memories from high
        school, what you're doing these days, comments about this web site
        (good or bad), etc. The comments will appear at the bottom of the
        page.</p>
    <form:form method="post" action="GuestBook.jsp" modelAttribute="comment">
        <table>
            <tr>
                <td><form:label path="name">Name</form:label></td>
                <td><form:input path="name" /></td>
            </tr>
            <tr>
                <td><form:label path="message">Message</form:label></td>
                <td><form:textarea path="message" rows="10" cols="50" /></td>
            </tr>
            <tr>
                <td><input type="submit" value="Submit comment" /></td>
                <td>&nbsp;</td>
            </tr>
        </table>
    </form:form>
    <br>
    <myTag:comments />
    <%@ include file="footer.jsp"%>
</body>
</html>

这是 com.controller.CommentController.java。

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.dao.CommentDAO;
import com.model.Comment;

@Controller
@RequestMapping("/GuestBook.jsp")
public class CommentController {
    Comment comment;

    public Comment getComment() {
        return comment;
    }

    public void setComment(Comment comment) {
        this.comment = comment;
    }

    @RequestMapping(value = "/GuestBook", method = RequestMethod.POST)
    public String addComment(@ModelAttribute("comment") Comment comment, BindingResult result) {
        CommentDAO commentDAO = new CommentDAO();
        java.util.Date today = new java.util.Date();
        java.sql.Date date = new java.sql.Date(today.getTime());
        comment.setDate(date);

        if (commentDAO.writeComment(comment) == true) {
            return "redirect:GuestBook.jsp";
        }

        return "redirect:Oops.jsp";
    }

    @RequestMapping("/GuestBook")
    public ModelAndView showComments() {
        return new ModelAndView("comments", "command", new Comment());
    }
}

这是 web.xml。

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    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">
    <display-name>Granada High School Class of 1986</display-name>
    <servlet>
        <servlet-name>ghs1986</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ghs1986</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>com.configuration.ConfigurationListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <welcome-file-list>
        <welcome-file>home.jsp</welcome-file>
    </welcome-file-list>
</web-app>

这是 applicationContext.xml。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/mvc
                http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <mvc:annotation-driven />

    <context:component-scan base-package="com.controller" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

</beans>

这是 ghs1986-servlet.xml。

<?xml version="1.0" ?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean name="comment" class="com.model.Comment" />

    <bean name="/GuestBook.jsp" class="com.controller.CommentController">
        <property name="comment" ref="comment" />
    </bean>
</beans>
4

1 回答 1

6

尝试以下操作:

1)在web.xml中,改变

<url-pattern>/*</url-pattern>

<url-pattern>/</url-pattern>

2)移动代码

<mvc:annotation-driven />

<context:component-scan base-package="com.controller" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

从 applicationContext.xml 到 ghs1986-servlet.xml

3) 在 CommentController 中,更改@RequestMapping("/GuestBook.jsp")@RequestMapping("/GuestBook")

4) 还在 CommentController 中,改变

@RequestMapping("/GuestBook")
public ModelAndView showComments() {
...
}

类似于

@RequestMapping("/showComments")
public ModelAndView showComments() {
...
}

现在再次尝试使用http://localhost:<your_port>/GuestBook/showComments. 您应该有权访问您的页面。可能还有其他错误,但我们这里只处理 404 错误。

5) 可选(但强烈推荐):阅读一些文档 + 一个很好的入门教程,以了解基本的最佳实践以及如何进行设置。

于 2012-07-15T19:39:35.050 回答