当登录成功后,用一下界面显示(main.jsp):<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> 
<%@ page contentType="text/html; charset=gb2312" %> 
<html> 
<body> 
<p>Login Success!!!</p> 
<p>Current User: 
<c:out value="${logininfo.username}"/><br> 
</p> 
<p>Your current messages:</p> 
<c:forEach items="${messages}" 
var="item" 
begin="0" 
end="9" 
step="1" 
varStatus="var"> 
<c:if test="${var.index % 2 == 0}"> 

</c:if> 
${item}<br> 
</c:forEach> 
</body> 
</html> 
为什么上面用了EL表达式的地方不显示变量对应的值,而显示如下:
Login Success!!!Current User: ${logininfo.username}
Your current messages:${item}

解决方案 »

  1.   

    用的是springMFC结构。几个文件的如下:LoginAction.java//////:public class LoginAction extends SimpleFormController {    private String fail_view; 
       private String success_view;    protected ModelAndView onSubmit(Object cmd, BindException ex) 
          throws Exception { 
              
          LoginInfo loginInfo = (LoginInfo) cmd; 
          //登陆成功 
          if (login(loginInfo) == 0) 
          { 
             HashMap result_map = new HashMap(); 
             result_map.put("logininfo", loginInfo); 
             List msgList = new LinkedList(); 
             msgList.add("msg1"); 
             msgList.add("msg2"); 
             msgList.add("msg3"); 
             result_map.put("messages", msgList); 
              
             return new ModelAndView(this.getSuccess_view(), result_map); 
          } 
          //登陆不成功 
          else 
          { 
             return new ModelAndView(this.getFail_view()); 
          } 
       }    private int login(LoginInfo loginInfo) { 
           
          if ("11".equalsIgnoreCase(loginInfo.getUsername()) 
             && "22".equals(loginInfo.getPassword())) { 
             return 0; 
          } 
          return 1; 
       }    public String getFail_view() { 
          return fail_view; 
       }    public String getSuccess_view() { 
          return success_view; 
       }    public void setFail_view(String string) { 
          fail_view = string; 
       }    public void setSuccess_view(String string) { 
          success_view = string; 
       } 

    LoginInfo.java:////////////public class LoginInfo {
    private String username; private String password; public String getPassword() {
    return password;
    } public void setPassword(String password) {
    this.password = password;
    } public String getUsername() {
    return username;
    } public void setUsername(String username) {
    this.username = username;
    }
    }
    index.html:///////////
    <html>
    <body>
    <form method="POST" action="login.do">
    <p align="center">登录</p>
    <br>
    用户名:
    <input type="text" name="username" >
    <br>
    密 码 :
    <input type="password" name="password" >
    <br>
    <p>
    <input type="submit" value="提交" name="B1">
    <input type="reset" value="重置" name="B2">
    </p>
    </form>
    </body>
    </html>
      

  2.   

    两个配置文件如下:
    web.xml://///////////////////<?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
      Copyright 2004 The Apache Software Foundation  Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at      http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    --><web-app> <servlet> 
       <servlet-name>Dispatcher</servlet-name> 
       <servlet-class> 
          org.springframework.web.servlet.DispatcherServlet 
       </servlet-class> 
       <init-param> 
          <param-name>contextConfigLocation</param-name> 
          
          <param-value>/WEB-INF/Config.xml</param-value> 
         <!---->
         <!-- <param-value>/WEB-INF/ConfigForFreeMarker.xml</param-value> -->
          
       </init-param> 
    </servlet> <servlet-mapping> 
       <servlet-name>Dispatcher</servlet-name> 
       <url-pattern>*.do</url-pattern> 
    </servlet-mapping> <taglib>
           <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
           <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
    </taglib>
    </web-app> 
    Config.xml:///////////////////////
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans> 
    <!--Definition of View Resolver --> 
    <bean id="viewResolver" 
       class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        
       <property name="viewClass"> 
          <value>org.springframework.web.servlet.view.JstlView</value> 
       </property> 
        
       <property name="prefix"> 
          <value>/WEB-INF/view/</value> 
       </property> 
        
       <property name="suffix"> 
          <value>.jsp</value> 
       </property> 
    </bean> <!--Request Mapping --> 
    <bean id="urlMapping" 
       class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">    
       <property name="mappings"> 
          <props> 
             <prop key="/login.do">LoginAction</prop> 
          </props> 
       </property> 
    </bean> <!---Action Definition--> 
    <bean id="LoginAction" 
       class="springMFC.LoginAction"> 
        
       <property name="commandClass"> 
          <value>springMFC.LoginInfo</value> 
       </property> 
        
       <property name="fail_view"> 
          <value>loginfail</value> 
       </property> 
        
       <property name="success_view"> 
          <value>main</value> 
       </property> 
    </bean> </beans> main.jsp:///////////////////<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> 
    <%@ page contentType="text/html; charset=gb2312" %> 
    <html> 
    <body> 
    <p>Login Success!!!</p> 
    <p>Current User: 
    <c:out value="${logininfo.username}"/><br> 
    </p> 
    <p>Your current messages:</p> 
    <c:forEach items="${messages}" 
    var="item" 
    begin="0" 
    end="9" 
    step="1" 
    varStatus="var"> 
    <c:if test="${var.index % 2 == 0}"> 

    </c:if> 
    ${item}<br> 
    </c:forEach> 
    </body> 
    </html> 
    当输入11,22后能够转入登录成功文件,但是上面用了EL表达式的地方
    不显示变量对应的值,而显示如下:
    Login Success!!!Current User: ${logininfo.username}
    Your current messages:${item}怎么回事啊,高手帮忙啊!
      

  3.   

    你的jdk,web服务是什么版本的,版本太低不支持EL
      

  4.   

    你的服务器版本是什么,可能不支持JSP2.0。换个服务器试试
      

  5.   

    jdk5.0
    tomcat5.0.28会是tomcat版本太低吗?