如何动态填充jsp页面?

时间:2016-02-08 22:52:47

标签: java jquery jsp servlets

我在网站上工作,使用servlet和jsp。

我有不同类别的jsp页面,当我点击一个类别时,servlet重定向到另一个带有组件的jsp页面(台式机,笔记本电脑,平板电脑......)但是该页面上有所有类别,我需要这样做,如果我点击(桌面)类别,只显示jsp页面中的桌面(组件)。

这是我的jsp页面和组件的servlet:

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

    Collection<Components> components;
    components= componentsdao.getAll() -- geting all components from database

    request.setAttribute("components", komponenta);
    request.getRequestDispatcher("pcitem.jsp").forward(request, response);
}
  

这是jsp页面的一部分

           <c:forEach var="i" items="${requestScope.components}">         
                    <p>
                     ${i.nameofcomponent}
                    </p>
                    <div >
                    <h6>Description ${i.descriptionoofcomponent}</h6>
                    </div>
                    <div ">
                    <h6>Price ${i.priceofcomponent}</h6>
                    </div>
                    <div >
                    <h6>Official site ${i.link}</h6>
                    </div>
        </c:forEach>  

2 个答案:

答案 0 :(得分:0)

您有多种选择,但最好的办法是使用Ajax框架,例如JQuery。您可以发出ajax请求并从服务器提取数据并使用java脚本在视图上呈现该数据。在下拉更改中定义事件 - &gt; Ajax调用以获取下一个下拉数据 - &gt;下一个电话。这将确保您的页面不会刷新,UX也会更好。

否则采用老式方式 - 在页面加载时获取所有数据(所有下拉数据) - 使用JS数组定义数组并获取有关事件更改的数据。

答案 1 :(得分:0)

当您单击类别时,servlet可能会返回到新页面。但是你可以通过jsp文件中的方式来实现。

  1. 从Servlet中输入类别并进行设置,如果单击桌面,则按如下所示进行设置。 例如:

    request.setAttribute(“categoryType”,“desktops”);

  2. 在循环遍历元素之前的jsp文件中,您可以检查'categoryType'并显示项目。 例如:

    if(“desktops”.equals(request.getAttribute(“categoryType”))){//显示项目。 }

  3. 你可以在for循环中使用Component类中的变量,例如'componentType',你也可以根据这个变量进行检查。