【发布时间】:2013-09-03 16:40:32
【问题描述】:
已编辑,仍然无法正常工作,但我需要在网站的每个页面上设置 page_type。该 page_type 需要由一些 java 检查并根据 page_type 执行代码。 问题是,if else 语句没有正确完成。没有任何反应,因为似乎没有放置参数。 正在设置 page_type 的主页:
<div id="DYK_area">
<jsp:include page="/imgs/random_dyk.jsp" flush="true">
<jsp:param name="Page_type" value="prenatalOverviewArea"></jsp:param>
</jsp:include>
</div>
检查代码的地方
<% String pageType = request.getParameter("page_type")==null?"": request.getParameter("page_type");
String image_name="";
if(pageType.equals("prenatalOverviewArea")){
int random = (int )(Math.random() * 10 + 1);
image_name= "/images/did_you_know/dyk_p_" + random + ".png";
}
else if(pageType.equals("prenatalNorm")){
int random = (int )(Math.random() * 25 + 1);
image_name= "/images/did_you_know/dyk_p_" + random + ".png";
}
else if(pageType.equals("overviewArea")){
int random = (int )(Math.random() * 20 + 1);
image_name= "/images/did_you_know/dyk_" + random + ".png";
}
else if(pageType.equals("overviewNorm")){
int random = (int )(Math.random() * 45 + 1);
image_name= "/images/did_you_know/dyk_" + random + ".png";
}
if(!image_name.equals("")){
%>
<img id="dyk_random" src="<%=image_name%>"/>
<%}%>
【问题讨论】:
-
Page_type是什么?request.getParameter读取参数,但它不会自动将其分配给变量。请改用以下内容:String type = request.getParameter("Page_type");并在您的条件中使用type变量。 -
我正在尝试将 page_type 设置为我所在的页面,以便 if 语句查看要运行的代码。我的 java exp 为 0,所以这是全新的 ={>)
-
另外,在使用这样的 scriptlet 时,请避免在比较
String对象时使用==运算符。请改用equals方法。==或eq在 JSP 表达式语言中可以,但在 scriptlet 中不行。 -
这些是很好的提示,但显示的内容没有任何变化。我对java知之甚少,我可能需要一个可行的例子。
-
相关:stackoverflow.com/q/5444083/1065197。顺便说一句,停止使用 scriplets,它们的使用是非常不鼓励的,而是使用 EL 和 JSTL。更多信息:stackoverflow.com/q/3177733/1065197