【发布时间】:2012-12-12 05:36:02
【问题描述】:
我有一个编辑页面,我想在其中从数据库中检索 主题 和 级别 并显示为用户编辑 课程 的选择选项强>。
当表单提交时,它会发出一个新的请求,用户输入被 courseBean 捕获并进行 XML 验证。当 XML 验证失败时,它会将刚刚捕获用户输入的 courseBean 转发到 edit.jsp。
所以每次我去edit.jsp,我都会检索数据库记录。我应该那样做吗?
此外,我尝试检索 subject lit 和 level lit 并将它们作为请求属性存储在显示 edit.jsp 的操作类中强>第一时间。但是当用户输入新请求时,从数据库中检索到的主题列表和级别列表将不再可用。
代码(edit.jsp):
<%
Session session2 = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session2.beginTransaction();
Query q = session2.createQuery("from Subject");
List subjectList = q.list();
List levelList = session2.createQuery("from Level").list();
%>
<div class="control-group">
<label class="control-label" for="inputPassword">Subject</label>
<div class="controls">
<select name="subject_id">
<%
for (Object subjectObject : subjectList) {
Subject subject = (Subject) subjectObject;
%>
<option value="<%=subject.getId()%>"><%=subject.getName()%></option>
<% } //end for %>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">Level</label>
<div class="controls">
<select name="level_id">
<%
for (Object levelObject : levelList) {
Level level = (Level) levelObject;
%>
<option value="<%=level.getId()%>"><%=level.getName()%></option>
<% } //end for %>
</select>
</div>
</div>
【问题讨论】:
-
您可以将它们放在您的会话中(request.getSession().setAttribute()),直到验证成功。
-
@dinukadev 我认为这是另一种方法;:)
标签: java jsp model-view-controller struts2 struts-action