我已經去以下形式:空指針異常中的doPost
<form action="/AppStore/publish" method="post" accept-charset="ISO-8859-1">
<fieldset>
<legend>Do you have an Account already?</legend>
<input type="radio" name="registred" value="yes"> Yes
<input type="radio" name="registred" value="no"> No
</fieldset>
<fieldset>
<legend>About your App</legend>
<table>
<tr>
<td><label for="AppDesc">Describe it:</label></td>
<td><input type="text" name="AppDesc" /></td>
</tr>
<tr>
<td><label for="AppName">Name:</label></td>
<td><input type="text" name="AppName" /></td>
</tr>
</table>
</fieldset>
<input type="submit" value="Submit" />
</form>
我這個數據傳遞到Java Servlet中,但每次我得到的getParameter(「AppDesc」)一個空指針異常,而不是的getParameter(「APPNAME 「)正常工作,我錯了什麼?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = getServletContext();
RequestDispatcher dispetcher = context.getRequestDispatcher("/publishForm.jsp");
List<String> errorMessages = new ArrayList<String>();
//Validating form input...
if(request.getParameter("AppName").toString().isEmpty())
{
errorMessages.add("Please type a valid Name for your App.");
}
if(request.getParameter("AppDesc").toString().isEmpty())
{
errorMessages.add("The Description of your App should contain at least 160 Characters.");
}
「AppDescr」與您在目前爲止顯示的Servlet和HTML代碼中的內容不匹配。你確定你正在運行你認爲你正在運行的代碼嗎?順便說一下,期望非空參數是一個非常糟糕的設計。你也應該**先檢查它是否爲空。此外,'toString()'調用完全是多餘的。它已經是'String'了。 – BalusC