【发布时间】:2014-02-16 14:16:45
【问题描述】:
如何在不使用 doGet 或 doPost 方法的情况下在我的 jsp 文件中使用我的 servlet 中的初始化参数?
编辑: 因为我只想在我的 Servlet 中使用 Java 代码,所以我的目标是在我的 jsp 中使用来自我的 servlet 的初始化变量。当我加载我的 jsp 时,应该用数组中的一些数据填充一个表。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="object.*"%>
<%@page import="basic.Services"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Shop | Weinhandel SW & DA</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<%
Services dbService = new Services();
%>
<body>
<div class="style3"></div><div class="style_2"><span class="style3"><a><strong></strong></a></span></div>
<div id="wrap">
<!-- Start "HeaderBereich" -->
<div id="topbar">
<h1 id="sitename"><a>Weinhandlung SW & DA</a></h1>
<div id="menus">
<ul id="topmenu">
<li>
<h4><a href="index.jsp">Home</a></h4>
</li>
<li>
<h4><a href="shop.jsp">Shop</a></h4>
</li>
<li>
<h4><a href="Verwaltung.jsp">Mitarbeiterlogin</a></h4>
</li>
</ul>
</div>
</div>
<div id="header">
<!-- Beinhaltet nur das Headerbild -->
</div>
<!-- Ende "Headerbereich" -->
<form method="post" action="WhServlet">
<!-- Beginn Content Bereich -->
<div id="content">
<!-- Mainpage -->
<div id="HeaderContent">
<h2>Produkte</h2>
<p>
Hier können Sie Ihren gewünschten Wein raussuchen und in den Warenkorb verschieben. Zur weiteren Hilfe
dienen Ihnen die Filter auf der rechten Seite.
</p>
</div>
<div id="ShopMainpage">
<p>
<c:forEach items="${weinTable}" var="wein">
<!-- Tabelle Wein -->
<table border="1">
<tr>
<th>Name</th>
<th>Jahrgang</th>
<th>Preis</th>
<th>Weingut</th>
<th>Typ</th>
<th>Art</th>
</tr>
<tr>
<td>${wein.name}</td>
<td>${wein.jahrgang}</td>
<td>${wein.preis}</td>
<td>${wein.weingutBez}</td>
<td>${wein.weintypBez}</td>
<td>${wein.weinartBez}</td>
</tr>
</table>
</c:forEach>
</p>
</div>
<!-- Sidebar -->
<div id="sidebar">
</div>
<!-- SidebarContent -->
<div id="sidebarcontents">
<a href="#">Warenkorb</a>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<!-- Art Filter -->
<b>Art:</b>
<p><select name="art" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<c:forEach items="${artTable}" var="art">
<option>${art.artBez}</option>
</c:forEach>
</select></p>
<!-- Land Filter -->
<b>Land:</b>
<p><select name="land" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<option></option>
</select></p>
<!-- Region Filter -->
<b>Region:</b>
<p><select name="region" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<option></option>
</select></p>
<!-- Typ Filter -->
<b>Typ:</b>
<p><select name="typ" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<option></option>
</select></p>
<!-- Rebsorte Filter -->
<b>Rebsorte:</b>
<p><select name="rebsorte" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<option></option>
</select></p>
<!-- Weingut -->
<b>Weingut:</b>
<p><select name="weingut" style="width: 100px">
<option><%="" %></option><!-- leeren String als Startwert -->
<option></option>
</select></p>
<!-- Filter Knopf -->
<input type="submit" title="btnFilter" value="Filter ausführen"/>
<br/>
</div>
</div>
<!-- Ende ContentBereich -->
</form>
</div>
<div id="footer">
<p>Copyright © 2014 | SW DA Weinhandel</p>
</div>
</body>
</html>
如您所见,我有一个表格和正在填充的组合框。当我按下提交按钮时,我将使用组合框中的选定值来创建一个语句并过滤此表以显示正确的数据集。因此,由于我只能通过 doPost 或 doGet 从我的 servlet 获取值,因此我无法填充这些组合框或表格。我需要一种方法来填充这些我的表格和我的组合框,而无需按下我的提交按钮
【问题讨论】:
-
不确定您要的是什么。您的意思是缺少请求参数的默认值?
-
您介意发布一些代码来说明您要查找的内容吗?
-
@Leo 希望以上信息对您有所帮助
-
谢谢。正如@hitham 指出的那样。 Scriptlet 是一个不错的选择
-
@Leo 填满表格后,我希望能够过滤它。我的 SQL 语句工作得很好,但是在我按下按钮后,它只显示标准的“wein table”。有什么想法吗?^^