2012-01-16 2 views
0

Я пытаюсь отправить значение текстового поля и распечатать его с помощью сервлета. Index.jsp - моя главная страница, и я использую jsp: include для включения формы, которая находится на другой странице, которая является login.html.значения формы, не отправленные на сервлет

здесь код у меня есть для login.html

<form id="f1" action="ControllerServlet" method="GET"> 
<p>username 
<input class ="text-input" type="text" id="txtusername" /> 
</p> 
<p> 
<input type="submit" value="submit" /> 
</p> 

index.jsp

<div id="col3_content" class="clearfix"> 

     <h1>H1 Heading</h1> 
     <jsp:include page="login.html"></jsp:include> 
     </div> 

контроллер сервлета

String usrname = request.getParameter("txtusername").toString(); 

     out.print(usrname); 

Проблема заключается в бросает нулевой исключение указателя. что я делаю неправильно здесь? любая помощь оценивается. спасибо

+0

Какой способ можно использовать? doPost или doGet – adatapost

+2

Вам не нужно вызывать toString() на request.getParameter(), это уже строка. – craftsman

ответ

4

Пожалуйста, используйте имя не ID

<input class ="text-input" type="text" name="txtusername" /> 
+1

Не опускайте атрибут id, поскольку OP может использовать его где-нибудь, как в javascript для проверки. –

1

id не используется, чтобы определить имя входного параметра. Правильный атрибут для параметра равен name, в настоящее время вы используете input без имени. Так что используйте

<input class ="text-input" type="text" name="txtusername" id="txtusername" /> 
1

Вам нужно определить name атрибут тега ввода, чтобы получить его в сервлет по имени.

<input class ="text-input" type="text" id="txtusername" name="txtusername" /> 

Кроме того, убедитесь что вы пишете код в doGet или метод обслуживания сервлета, как у вас есть GET как действие в виде тега.

0
Code for Login.html 

<form action="ControllerServlet" method="GET"> 
<p>username : 
<input type ="text" name="txtusername" /></p> 
<p><input type="submit" value="submit" /> </p> 
</form> 

ControllerServlet.java 

public void service(ServletRequest request, ServletResponse response) 
{ 
String username = request.getParameter("txtusername"); 
PrintWriter out = response.getWriter(); 
out.println("User Name " + username) 
Смежные вопросы