JSP表达式语言错误

时间:2012-05-29 08:20:04

标签: java spring jsp spring-mvc jstl

我创建了一个动态Web模块项目,使用STS和Spring MVC。问题是我在模型中添加了一个字符串,但它无法使用EL显示在JSP页面上。

我可以知道它有什么问题吗?

以下是详细信息: JSP页面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isELIgnored="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring MVC</title>
</head>
<body>
    Home 
    <br />

    <c:out value="${message}" /> 

</body>
</html>

Web.xml中

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

MVC控制器:

@Controller
public class HomeController {

    public HomeController() {
        super();
    }

    @RequestMapping(value="/home", method=RequestMethod.GET)
    public ModelAndView showHomePage() {

        // View Name - Model Name - Model Data
        return new ModelAndView("home", "message", "Hello Spring MVC");
    }
}

分配器一servlet.xml中

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

    <!-- http://www.jpalace.org/docs/tutorials/spring/mvc_10.html -->

    <!-- Context Scan -->
    <context:component-scan base-package="com.peter.controller"/>

    <!-- Handler Mapping -->
    <bean id="handlerMapping" class="org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    </bean>

    <!-- Handler Adapter - AnnotationMethodHandlerAdapter --> 
    <!-- Invoke Handler Method -->
    <bean id="handlerAdapter" class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    </bean> 

    <!-- Pre/Post Handler Interceptor -->
    <!-- 
    Implement HandlerInterceptor 
    Declare HandlerInterceptor inside DefaultAnnotationHandlerMapping property or 
    globally inside <mvc:interceptors>
    Need configure Filter object inside web.xml 

    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <list>
                <bean class="pckg.MyInterceptor1"/>
                <bean class="pckg.MyInterceptor2"/>
            </list>
        </property>
    </bean>

    <mvc:interceptors>
        <bean class="pckg.MyInterceptor1"/>
        <bean class="pckg.MyInterceptor2"/>
    </mvc:interceptors>

    -->

    <!-- View Resolver -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <property name="prefix" value="/WEB-INF"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- Exception Resolver -->

    <!-- Register Interceptor, Message Resource, Bean validation support, Message conversion and field formatting -->
    <mvc:annotation-driven />

</beans>

我的构建路径中有JSTL.jar。在Java Build Path中找不到关于“c:out”(org.apache.taglibs.standard.tag.rt.core.OutTag)的标记处理程序类的警告消息

请帮忙。

感谢。

2 个答案:

答案 0 :(得分:2)

  • 从maven repo下载jstl-1.2.jar(http://repo1.maven.org/maven2/javax/servlet/jstl/1.2/)。
  • 确保 jar可以在Web应用程序的WEB-INF \ lib文件夹中找到。

答案 1 :(得分:0)

我想查看您的viewResolver配置。你能查看主页吗?或者有404错误?

如果home.jsp显示正常,那么根据我的问题就在你的jsp中。 查看已定义页面指令的jsp的第一行。

在该声明中,每次都删除属性isELIgnored="false",默认为false。所以不需要明确地定义它。

我认为如果删除该属性。您的${message}会正确显示。

希望这会对你有所帮助。

干杯。