我用springmvc做了一个小例子,参考的是srping in action 上的。下面是我的输出结果:Hello World! ${rants} 为什么变量没有被替换啊???1)我的jsp页面是:<html>
<body>
<h2>Hello World! ${rants} </h2>
</body>
</html>2)我的servlet  的web.xml 配置文件是:<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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"> <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value> /WEB-INF/applicationContext.xml
  </param-value>
 </context-param>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <servlet>
  <servlet-name>sample</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>sample</servlet-name>
  <url-pattern>*.htm</url-pattern>
 </servlet-mapping>
</web-app>3)对应的 road-servlet.xml 文件内容是:<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
  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-2.5.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
  <bean name="/index.htm" class="com.duck.home.HomePageController"> 
   <property name="page"> 
      <value> wzf </value> 
   </property>
  </bean>
  
  <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix">
         <value>/WEB-INF/jsp/</value>
      </property> 
     <property name="suffix">
        <value>.jsp </value>
     </property> 
  </bean>
</beans>4)我的controller 是:package com.duck.home;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;public class HomePageController extends AbstractController{
    

private String page;
public HomePageController (){

}
protected ModelAndView handleRequestInternal( HttpServletRequest request, HttpServletResponse response)throws Exception{
    String page= this.page;
    System.out.println(page);
return  new ModelAndView("index", "rants", page);

}
public void setPage(String page){
this.page=page;
}
}
我期待的结果是 变量替换 成  wzf 谁能告诉我哪里错了啊??

解决方案 »

  1.   

    是不是版本低了你用<s:property value="rants"/>试试
      

  2.   

    干吗不直接在controller 中    request.setAttribute("rants",rants);
      

  3.   

    在page头信息上加个属性isELIgnored="false"试试
      

  4.   

    我也是菜鸟
    这种问题,一般是因为没有用jsp2.0的部署描述符或者你的容器必须就不支持JSP2.0。
    具体的就是tomcat你就要用5.0以上的版本;在web.xml里,修改web.xml的头: 
    <?xml   version= "1.0 "   encoding= "ISO-8859-1 "?> 
    <web-app   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   web-app_2_4.xsd " 
    version= "2.4 "> 
    ;再不行就在你的jsp文件开始加上 
    <%@   page   isELIgnored= "false "%> 
      

  5.   

    你需要把那个变量放到一个map中,再使用<s:propery value=""> 输出就可以了。HashMap hm = new HashMap();
    hm.put("regInfo", regInfo);
    return new ModelAndView(this.getSuccess_view(),hm);
    用户名:<c:out value="${regInfo.userName}"></c:out><br/>
    这样就可以了。