想在jsp页面中动态填充文本框

时间:2010-05-06 02:46:38

标签: jsp

想要使用jsp页面创建一个应用程序,以便它从文本框中的用户获取值,并根据该值从数据库中检索其他值并使用该重新获取的值填充其他文本框

1 个答案:

答案 0 :(得分:2)

  1. 创建一个HTML表单并将其放在search.jsp

    <form action="search" method="post">
        <input type="text" name="query">
        <input type="submit">
    </form>
    
  2. 创建一个extends HttpServlet并执行所需业务任务的Java类:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String query = request.getParameter("query");
        Data data = someDAOClass.find(query);
        request.setAttribute("data", data); // Will be available in EL by ${data}
        request.getRequestDispatcher("search.jsp").forward(request, response); // Return back to JSP page.
    }
    

    将此servlet映射到url-pattern/search web.xml的{​​{1}},以便将其执行,然后提交JSP中的表单。

  3. 使用应显示此数据的输入字段扩展表单。只需使用所需信息填充输入元素的value属性即可。

    <form action="somethingelse" method="post">
        <input type="text" name="id" value="${fn:escapeXml(data.id)}" />
        <input type="text" name="name" value="${fn:escapeXml(data.name)}" />
        <input type="text" name="email" value="${fn:escapeXml(data.email)}" />
        <input type="text" name="age" value="${fn:escapeXml(data.age)}" />
        ...
    </form>
    

    fn:escapeXml就是阻止XSS的方式。