永远无法通过jsp中的request.getParameter()获取实际值

时间:2014-05-14 09:45:26

标签: java jsp

我有代码:

<%
ResultSet topicResult = DatabaseManager.getTopics(sujectResult.getString("_id"));
out.print("<ul class=\"pages\">");
while (topicResult.next()) {
%>
<li<% String selectedTopic = request.getParameter("topic_id");
try{
    if(selectedTopic.equals(topicResult.getString("_id"))){%>
class="selected"
<%}
}catch(NullPointerException e){

}%>
><a href="/programming-iqs/admin-controller?action=manage-content&topic_id=
<%= topicResult.getString("_id")%>">
<%= topicResult.getString("topic_name")%>
</a></li>
<%
}

}
%>

在上面给出的代码中,我可以得到

的值
request.getParameter("topic_id");

但是当我尝试同一页面中的代码并且大约在上面一行的20行时:

<%

String topicAttr = request.getParameter("topic_id"); // Here velue is NULL

try{
    if (!topicAttr.equals(null)){
    ResultSet subjByIdResult = DatabaseManager.getTopicById(topicAttr);
        while(subjByIdResult.next()){
            out.print(subjByIdResult.getString("topic_name"));
        }
    }
}catch(NullPointerException e){

}
%>

我永远无法获得实际价值,只有null。 我搜索并找到this&amp; this here,但无法在我的案例中找到解决方案。 任何人都可以建议我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您应该在String变量中存储第一次出现的request.getParameter()。然后你可以全局使用它。

同时将if条件更改为

if (!topicAttr.equals==null){}

因为在equals()方法中,您将String与变量进行比较。