Friday, September 23, 2011

Ajax with JQuery and Java

I had a need to populate some drop-down select fields with database values for a customer form. I got it to work using JQuery 1.4.2 and Java 6.

HTML or JSP page:

<script language="javascript" type="text/javascript">
jQuery(function($){
// other initial setup
startup();
});
</script>
</head>

JavaScript

function startup() {
loadJobData();
// other initial functions
}

function loadJobData() {
$("select#jobPosition").load("MyAjax",{id: "jobtitles", ajax: 'true'});
}

Java Controller

public class MyAjaxController extends HttpServlet {

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

private void processRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException {

String dataRequested = request.getParameter("id");
JobListData listData = new JobListData();
String displayText = listData.getData(dataRequested); // go to database, file, whereever

response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.println(displayText);
out.flush();
out.close();
}

Standard web.xml entry

<servlet>
<description>my ajax</description>
<display-name>MyAjaxController</display-name>
<servlet-name>MyAjaxController</servlet-name>
<servlet-class>com.mysite.MyAjaxController</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MyAjaxController</servlet-name>
<url-pattern>/MyAjax</url-pattern>
</servlet-mapping>

No comments:

Post a Comment