我在welcome.jsp上有这个
<c:set var="pgTitle" value="Welcome"/>
<jsp:include page="/jsp/inc/head.jsp" />
Run Code Online (Sandbox Code Playgroud)
这在head.jsp中:
<title>Site Name - ${pgTitle}</title>
Run Code Online (Sandbox Code Playgroud)
但变量是空白的,输出仅仅是
Site Name -
Run Code Online (Sandbox Code Playgroud)
我看过很多文章,我无法弄清问题是什么.如果我${pgTitle}在同一个welcome.jsp中的其他地方回显,那么它输出正常.
我在两个页面上都包含了核心标记库.
Lui*_*oza 35
这是因为pgTitle变量是在页面范围中设置的.检查它在这里(抱歉,我不能得到这个官方文档).
如果要使其工作,则必须至少在请求范围中设置变量.要在请求范围中设置变量,请使用以下scope属性<c:set>:
<c:set var="pgTitle" value="Welcome" scope="request" />
Run Code Online (Sandbox Code Playgroud)
根据您的评论,在Web开发中,变量的范围很重要,因为它定义了变量的使用位置(类似于在类中声明为字段的变量和在方法中本地声明的变量).JSP中有四个范围称为上下文:
更多信息:
这是完成我想要做的事情的正确方法吗?
如果有一个Servlet或另一个控制器来处理要在请求中设置的属性(例如,@Controller从Spring MVC或JSF托管bean),那么在那里设置属性而不是直接在页面中.
就个人而言,在Web应用程序上使用时,需要一些时间来获得经验并定义变量的最佳范围.基本示例:
String用于演示目的的逗号分割将仅影响当前视图,因此可以在页面范围中设置.| 归档时间: |
|
| 查看次数: |
30184 次 |
| 最近记录: |