-1

私のプロジェクトのコンセプトは、コントロールが関連するjspページに転送されるドロップダウン値に依存しています。

私は4つのドロップダウン値を作成しました

1.アンドロイド

2.ストラット

3.春

4.休止状態

そして4つのjspページ

1.andriod.jsp

2.struts.jsp

3.spring.jsp

4.hibernate.jsp

アンドリオドを選択して送信ボタンをクリックすると、コントロールがandriod.jspページに転送され、同様に他の値も転送されます。

私の問題は

アンドリオドを選択して送信ボタンをクリックすると、常にヌルポインター例外が表示されます...

誰でも私の問題を解決してください。

私が作成しました

1.jspページ(ファイル名.jsp)

2.サーブレットページ(CatServ.java)

NewFile.jsp

<body>
<form action="test" method="post">
<table>
<tr>
<td>
Select the category</td>
<td>
<select>
  <option name="andriod"       value="lang">Andriod</option>
  <option name="java"           value="lang">Java</option>
  <option name="struts"         value="lang">Struts</option>
  <option name="spring"        value="lang">Spring</option>
  <option name="hybernate"   value="lang">Hybernate</option>
</select>
</td>
</tr>
<tr>
<td><center>
<input type="submit" value="Submit"></center>
</td>
</tr>
</table>
</form>
</body>

CatServ.java

package container;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CatServ
 */
@WebServlet("/CatServ")
public class CatServ extends HttpServlet
 {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        // TODO Auto-generated method stub
        String s=request.getParameter("lang");
        System.out.println(s);

        if(s.equals("andriod"))
        {
            RequestDispatcher  rd=request.getRequestDispatcher("AndriodServ.jsp");
            rd.forward(request, response);
        }
        else if(s.equals("java"))
        {
            RequestDispatcher  rd=request.getRequestDispatcher("JavaServ.jsp");
            rd.forward(request, response);
        }
        else if(s.equals("struts"))
        {
            RequestDispatcher  rd=request.getRequestDispatcher("StrutsServ.jsp");
            rd.forward(request, response);
        }
        else if(s.equals("spring"))
        {
            RequestDispatcher  rd=request.getRequestDispatcher("SpringServ.jsp");
            rd.forward(request, response);
        }
        else if(s.equals("hibernate"))
        {
            RequestDispatcher  rd=request.getRequestDispatcher("Hybernate.jsp");
            rd.forward(request, response);
        }
    }
}
4

2 に答える 2

4

あなたは名前と価値を混乱させています。あなたが必要<select name="lang">とし、あなたのオプションはのようでなければなりません<option value="spring">

于 2012-12-29T15:44:49.390 に答える
1

正しく動作させるには、次のように選択を書き直す必要があります

<select name="lang">
 <option  value="andriod">Andriod</option>
<option  value="java">Java</option>
<option  value="struts">Struts</option>
<option  value="spring">Spring</option>
<option  value="hybernate">Hybernate</option>
</select>

詳細については、これを確認できます

sまた、呼び出しの前に nullをチェックすることをお勧めしますequals

if(s !=null) {
// do my checks
}
于 2012-12-29T15:52:22.410 に答える