今天看到JSP表达式 动态包含 主页面 include.jsp代码如下:
<html>
<head></head><body>
The current date and time are 
<% String cba = "nba";%>
<jsp:include page="date.jsp" flush="true">
<jsp:param name="m" value="<%= cba %>"/>
</jsp:include>
</body></html>
被包含页面date.jsp代码如下:<%@ page import="java.util.*" %>
<% out.println(request.getParameter("m"));
 %>
<%= (new Date()).toLocaleString() %>
如上运行可以正常执行 结果是 nba 可是书中讲到 <%= cba%>可以完全被替换为<% out.println(cba);%>
可是我改玩以后却不能正常运行!
难道<%= %>是不能完全被<% %>取代的?
这难道就是<%=%>的价值所在?
请高手在这个小问题上给与站点!
谢谢!

解决方案 »

  1.   

    <% out.println(cba);%> 是执行语句
     <%= cba%>是赋值语句,两者不等价
    你要学的东西很多
      

  2.   

    <%=就是取值的啊 取完以后就嵌入到html或脚本中了 你那不正常说明值或你的位置不对 独立运行
    date.jsp?m=xxxxx
      

  3.   


    在jsp中执行打印和<%=等jsp编译完都是页面上的值 对于这个问题就是显示date的字符串 有何不一样之处~。
      

  4.   

    <%= cba%>可以完全被替换为 <% out.println(cba);%>
    确实是这样的
      

  5.   

    是这里出问题了吧
    <% out.println(cba);%> 
    应该是:
    <% out.println(nba);%> 
      

  6.   

    <%=%> 会从 page request session application中寻找变量
    <% out.println(cba);%>  是找不到这个变量的 除非你使用<% String a =request.getAttribute("cbd") out.println(a);%> 来输出 
    当然首先你request里得有这个变量
      

  7.   


    lz,用el表达式多优雅啊。效果更好。我入门时也学scriptlet,现在基本都忘光了。不过,标准答案应该是这个。