Java JSP在Spring中不显示模型中的对象

Java JSP在Spring中不显示模型中的对象,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我有一个应该很容易解决的问题,但我没有运气 在我的servlet-servlet.xml文件中,我有以下bean(以及其他bean): 显然,我的视图映射正确,但我似乎无法访问视图中添加到请求中的模型对象。在过去,我已经用SpringMVC做过很多次类似的事情,但我肯定错过了一些明显的东西。有什么想法吗?谢谢。我没有像您在Spring MVC中使用的那样多的注释配置,所以我不确定您的设置是否会自动完成所有的事情。我唯一的想法是:方法参数应该是ModelMap对象吗?我以前看到的示例都使用Mode

我有一个应该很容易解决的问题,但我没有运气

在我的servlet-servlet.xml文件中,我有以下bean(以及其他bean):


显然,我的视图映射正确,但我似乎无法访问视图中添加到请求中的模型对象。在过去,我已经用SpringMVC做过很多次类似的事情,但我肯定错过了一些明显的东西。有什么想法吗?谢谢。

我没有像您在Spring MVC中使用的那样多的注释配置,所以我不确定您的设置是否会自动完成所有的事情。我唯一的想法是:方法参数应该是ModelMap对象吗?我以前看到的示例都使用ModelMap作为参数类型。本页第13.11.3节是其中之一:


就像我说的,我以前没有使用过这种类型的自动配置——我稍微手动一些,并从AbstractController或SimpleFormController之类的东西扩展我的控制器。

您确定在JSP中启用了EL评估吗?我有时会遇到这样的问题,不知怎的,它被人利用了。尝试计算一个简单的表达式,如
${'test'}
,然后查看是否出现'test'

如果EL应该被禁用,您还可以尝试通过页面指令或其他方式启用它

<%@ page isScriptingEnabled="true" isELIgnored="false" %> //of course it has to be FALSE
//当然必须是FALSE

(抱歉,我不记得这是否100%正确。它可能是“isELEnabled”)

我遇到了相同的问题,在比较了两个类似的应用程序(一个运行正常,另一个运行不正常)后,注意到我的tomcat 7上的问题取决于应用程序的web.xml中指定的webapp版本

使用Web App 2.3的同一个jsp显示${someMessage}。(顺便说一句,这是使用maven archetype:generate with ArchetypeArtfactid=maven archetype webapp得到的结果)


...
使用Web App 2.4的相同jsp正确显示模型对象:

<?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">
...

...

希望能有帮助

谢谢你抽出时间。我尝试过使用ModelMap,得到了相同的结果。你能提供你的web.xml吗?还有你的整个servlet.xml??我已经用我这边的同一个视图测试了你的控制器,它被正确渲染了。很好!添加到jsp的顶部修复了我的问题。我不确定禁用EL会发生什么。哦,包括isScriptingEnabled属性似乎破坏了jsp,所以我刚刚删除了它。isScriptingEnabled属性似乎在JSP 2.0之前是有效的?因此,总而言之,添加到我的jsp解决了这个问题。谢谢,莫克斯,不客气。我很确定有某种方法可以在web.xml中配置它。根据[this][1],您可以将come配置添加到web.xml中,以便为所有JSP启用EL。[1]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>servlet.com</title>
</head>
<body>
${someMessage}
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>servlet.com</title>
</head>
<body>
${someMessage}

</body>
</html>
22:21:17,425 DEBUG DispatcherServlet:852 - DispatcherServlet with name 'servlet' determining Last-Modified value for [/servlet/access/test]
22:21:17,426 DEBUG DefaultAnnotationHandlerMapping:183 - Mapping [/test] to handler 'com.servlet.web.TestController@762fef'
22:21:17,426 DEBUG DispatcherServlet:868 - Last-Modified value for [/servlet/access/test] is: -1
22:21:17,426 DEBUG DispatcherServlet:700 - DispatcherServlet with name 'servlet' processing GET request for [/servlet/access/test]
22:21:17,427 DEBUG HandlerMethodInvoker:158 - Invoking request handler method: public java.lang.String com.servlet.web.TestController.methodName(java.util.Map)
22:21:17,427 DEBUG DispatcherServlet:1070 - Rendering view [org.springframework.web.servlet.view.JstlView: name 'test'; URL [/WEB-INF/jsp/test.jsp]] in DispatcherServlet with name 'servlet'
22:21:17,427 DEBUG JstlView:328 - Added model object 'someMessage' of type [java.lang.String] to request in view with name 'test'
22:21:17,428 DEBUG JstlView:237 - Forwarding to resource [/WEB-INF/jsp/test.jsp] in InternalResourceView 'test'
22:21:17,429 DEBUG DispatcherServlet:666 - Successfully completed request
<%@ page isScriptingEnabled="true" isELIgnored="false" %> //of course it has to be FALSE
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
...
<?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">
...