私は解決しなければならない問題がありますが、私は運がないです。私のサーブレット-servlet.xmlファイルでSpringのモデルからオブジェクトを表示していないJSP
、私は(他の人に加えて)次のBeanがあります。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<context:component-scan base-package="com.servlet.web" />
私のテストコントローラは、次のようになります。
package com.servlet.web;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController
{
protected final Log log = LogFactory.getLog(getClass());
@RequestMapping("/test")
public String methodName(Map<String, Object> map) {
map.put("someMessage", "some string here");
return "test";
}
}
私のJSPビュールックスこのように:私は、JSPを表示するときにそう
<!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>
、私はsomeMessage(ここではいくつかの文字列)の値を期待していますが、私だけだろう次を得る:
<!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>
私はログをクランクアップするとき、私はモデルで行われている私のsomeMessageオブジェクトがされていることを確認:「
明らか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 '[email protected]'
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
、私の見解が正しくマッピングされているが、私はできますビューの要求に追加されたモデルオブジェクトにアクセスしているようです。私は過去に何度もSpring MVCでこの種のことをやったことがありますが、ここでは何か分かりにくいものがあります。何か案は?ありがとう。
web.xmlを提供できますか?あなたのサーブレット - servlet.xml全体? 私の側で同じビューでコントローラをテストしたところ、正しくレンダリングされました。 – rochb