簡體   English   中英

在JSP中使用request.getParameter會導致NullPointerException

[英]Use of request.getParameter in JSP results in NullPointerException

嘗試獲取查詢字符串參數並在JSP頁面中采取適當的措施。

這是一個片段:

<%@ page import="com.companyx.portal.model.LDAPAttributes" %>
<%@ page import="com.companyx.portal.service.LDAPAttributesLocalServiceUtil" %>
<%@ page import="com.liferay.portal.model.User" %>
<%@ page import="com.liferay.portal.util.PortalUtil" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>

<%
User user = PortalUtil.getUser(request);
String screenName = user.getScreenName();
LDAPAttributes attr = LDAPAttributesLocalServiceUtil.getLDAPAttributes(screenName);
String store = attr.getLegacyStoreNo();
String org = request.getParameter("org");
%>

...more code here...

<html>
...html code here...
<form name="LoginForm" action="check_login.php">
    <input type="hidden" name="LOGIN_NAME" size="20" value="<%= store %>" />
    <input type="hidden" name="LOGIN_PASSWORD" size="20" value="<%= store %>" />
    <input type="hidden" name="ORGANIZATION" value="<%= org %>" />
</form>

當以下行不存在時:

 String org = request.getParameter("org");
 ...
 <input type="hidden" name="ORGANIZATION" value="<%= org %>" />

該腳本可以正常工作,但是我需要從查詢字符串中捕獲一個'org'參數,將其寫入生成的表單中並提交。 但是,當這些行存在時,我會收到500錯誤。

有什么想法嗎?

您可能正在使用PortletRequest而不是HttpServletRequest

HttpServletRequest realRequest = PortalUtil.getHttpServletRequest(request);

String organization = realRequest.getParameter("org");
String org = request.getParameter("ORGANIZATION");

嘗試這個,

<input id ="org" type="hidden" name="org" value="" />

然后,您可以將任何值添加到value屬性。

 String org = request.getParameter("org"); // get from input hidden id

如果您正確地在查詢字符串中傳遞org ,那么您的代碼將正常工作。

如果無法正常工作,請使用request.setAttribute("org",org_value)而不是將org值作為查詢參數傳遞,並使用request.getAttribute("org").toString在jsp中獲取org值。 它肯定會工作。

如果您嘗試過Andrew Thompson提出的問題后仍無法解決您的問題。 如果使用的是Tomcat,是否可以嘗試將“ org”變量的名稱更改為其他名稱。 我不記得確切,但是一旦在其中一個版本的Tomcat中遇到了類似的問題,其中不允許使用“ org”變量名。

如果我在同一jsp頁面中兩次使用request.getParameter()。

第二次顯示為空。

喜歡

if(request.getParameter("frmdttxt") != request.getParameter("start_date")){
                    out.println("we are here");
                    date_flag="DNM";                        
                }else{

                    date_flag="DM";
                }




if(request.getParameter("page_number")==null){
                //System.out.println("we are here");
                frmdt = request.getParameter("frmdttxt");
                todt = request.getParameter("todttxt");
                stat = request.getParameter("status");
                regn = request.getParameter("region");

                }

然后frmdt為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM