Witam, mam taki mały problem z którym za nic w świecie nie mogę się uporać. Przykładowo: mam servlet który wypluwa prosty, htmlowy formularz. Następnie dodałem do tego prosty skrypcik .js, który sprawdza czy pole jest, czy też nie jest wypełnione - i jeśli nie jest to wyrzuca alert.
I tutaj mam problem - wszystko działa pięknie i ładnie, dopóki... dopóki wypisuję wszystko w Servlecie. Kiedy próbuję załadować plik, to nie reaguje. Dodam przy tym, że mam raczej średnie pojęcie o JavaScript więc mogę tam robić coś nie tak. Kod serwletu:
import java.io.IOException;
import java.io.PrintWriter;
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 ServletD2
*/
public class ServletD2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletD2() {
super();
}
private void printJSValidate(PrintWriter out){
out.print("<head><script language=\"text/javascript\" src=\"/JavaScripts/servletD2Script.js\"></script></head>\n");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
printJSValidate(out);
out.print("<FORM ACTION=\"ExerciseE\" name=\"entryForm\">\n"+
"Name:<INPUT TYPE=\"TEXT\" NAME=\"name\"><BR>\n"+
"<CENTER><INPUT TYPE=\"BUTTON\" VALUE=\"SUBMIT\" OnClick=\"validate()\"></CENTER>\n</FORM>");
}
}
Kod pliku .js:
function validate(){
if(document.entryName.name.value==""){
alert("Wpisz dane!");
} else {
document.entryForm.submit();
}
}
Wygenerowany html:
<head><script language="text/javascript" src="/JavaScripts/servletD2Script.js"></script></head>
<FORM ACTION="ExerciseE" name="entryForm">
Name:<INPUT TYPE="TEXT" NAME="name"><BR>
<CENTER><INPUT TYPE="BUTTON" VALUE="SUBMIT" OnClick="validate()"></CENTER>
</FORM>
Projekt tworzę pod Eclipsem z Glassfishem 3.1.1. Plik .js znajduje się w folderze /WebContent/Javascripts/ .
Ktoś może miał podobny problem? Może trzeba coś dorzucić do web.xml (google raczej się gubi)? Lub zmappować? A może ja po prostu gdzieś się pomyliłem?