0

OK、私はSpring MVCの初心者です。明らかな欠落部分があるはずですが、何時間も見ることができません。JSP は、渡されたデータが null であると言います。

これは私のディスパッチャ sevlet です。Netbeans のサンプル xml とあまり変わらず、名前空間などの一部を切り取っています。

<?xml version="1.0" encoding="UTF-8"?>
<beans>
  <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
  <bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
  <props>
    <prop key="index.htm">indexController</prop>
    <!--<prop key="hello.htm">helloController</prop> -->
  </props>
</property>
</bean>

<bean name="/hello.oi" class="controllers.HelloController"/>

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/jsp/"
    p:suffix=".jsp" />

<!--
The index controller.
-->
<bean name="indexController"
    class="org.springframework.web.servlet.mvc.ParameterizableViewController"
    p:viewName="index" />
</beans>

これは私のコントローラー HelloController です:

@Controller
public class HelloController {
  @RequestMapping
  public ModelAndView hello() {
    String str = "this is my message";
    System.out.println(str);
    ModelAndView mav=new ModelAndView();
    mav.setView("hello");
    mav.addObject("msg", str);
    return mav;    
  }
}

そして、これは JSP ファイルの hello.jsp です。

<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JSP Page</title>
</head>
<body>
  <h1>${msg eq null}...</h1>
  <br />
  <h1>${msg}...</h1>
</body>
</html>

コントローラー メソッドはコンソールにメッセージを出力しますが、JSP は "true..." をレンダリングします。

4

1 に答える 1

0

Using${msg}は、Spring EL を使用していることを示します。これを行うには、Spring タグ ライブラリを含める必要があります。

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

Spring EL ライブラリがなければ、リクエスト オブジェクトを介してモデルとビュー オブジェクトにアクセスする必要があります。

request.getAttribute("msg")
于 2013-06-03T14:19:10.960 に答える