【问题标题】:jsp request.getParameterjsp request.getParameter
【发布时间】: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

标签: java jsp


【解决方案1】:

您正在使用type 变量从请求参数中获取值,但在if 条件下您使用的是Page_type

像这样包含 JSP

<div id="DYK_area">
   <jsp:include page="/imgs/random_dyk.jsp" flush="true">
     <jsp:param name="Page_type" value="prenatalOverviewArea" />
   </jsp:include>
</div> 

在包含的 JSP 上

<%
    System.out.println("Page type is : "+request.getParameter("Page_type"));
    String Page_type = request.getParameter("Page_type");
    if(Page_type.equalsIgnoreCase("prenatalOverviewArea")){
        int random = (int )(Math.random() * 10 + 1);
        image_name= "/images/did_you_know/dyk_" + random + ".png";
    }

    else if(Page_type.equalsIgnoreCase("prenatalNorm")){
        int random = (int )(Math.random() * 25 + 1);
        image_name= "/images/did_you_know/dyk_p_" + random + ".png";
    }
%><img id="dyk_random" src="<%=image_name%>"/>

【讨论】:

  • 看起来像是错字
  • 不幸的是,这对代码并没有多大作用(谢谢,我确实为这个响应学到了一点!)。我对我的示例进行了一些更改,但几乎相同。
  • -1:这不会解决 OP 的问题,请注意,基本上这就是他/她已经在做的事情了。
【解决方案2】:

我不确定 /imgs/random_dyk.jsp 中的代码是否正确。您使用变量 Page_type 尽管它不存在。

你应该在之前初始化它,在request.getParameter("Page_type");这样的行:

<%! String xxx = request.getParameter("Page_type"); %>

那么,

<% if(xxx.equals("prenatalOverviewArea")){
...

【讨论】:

  • -1:OP 已经在此处执行此操作:String type = request.getParameter("Page_type");
  • 我做了一些调整,但仍然没有正常工作。
  • 我没有看到String pageType = request.getParameter("page_type")==null?"": request.getParameter("page_type");这一行
【解决方案3】:

这是有效的方法,无论如何,谢谢你们,你们至少让我更接近了!

<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>

<%@ page contentType="text/html; charset=UTF-8" language="java"  errorPage="" %>

<% 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%>"/>

<%}%>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    相关资源
    最近更新 更多