我在网站上工作,使用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>
答案 0 :(得分:0)
您有多种选择,但最好的办法是使用Ajax框架,例如JQuery。您可以发出ajax请求并从服务器提取数据并使用java脚本在视图上呈现该数据。在下拉更改中定义事件 - &gt; Ajax调用以获取下一个下拉数据 - &gt;下一个电话。这将确保您的页面不会刷新,UX也会更好。
否则采用老式方式 - 在页面加载时获取所有数据(所有下拉数据) - 使用JS数组定义数组并获取有关事件更改的数据。
答案 1 :(得分:0)
当您单击类别时,servlet可能会返回到新页面。但是你可以通过jsp文件中的方式来实现。
从Servlet中输入类别并进行设置,如果单击桌面,则按如下所示进行设置。 例如:
request.setAttribute(“categoryType”,“desktops”);
在循环遍历元素之前的jsp文件中,您可以检查'categoryType'并显示项目。 例如:
if(“desktops”.equals(request.getAttribute(“categoryType”))){//显示项目。 }
或
你可以在for循环中使用Component类中的变量,例如'componentType',你也可以根据这个变量进行检查。