我是Struts2和Hibernate的新手。我想创建一个下拉列表,如下所示[使用Hibernate和Struts],它会动态弹出一个菜单,当选择一个id时,它会显示该id的所有信息:
我费了很大劲才做到这一点。但失败了。有谁能帮帮我吗?
我有一张学生桌,就像这样:
id name age
1...a.....20
2...b.....24
3...c.....22
使用Hibernate,我创建了模型和道像…学生模型和学生DAO
在DAO中,我实现了一个返回ID列表的方法,如下所示:
// StudentDAO.java
public List<String> findId(String id) {
.....
return ...
}
现在,我将操作定义为struts.xml文件,如下所示:
// Struts.xml
<action name="idSelection" class="..." method="findId">
<result> studentpage.jsp </result>
</action>
那么,现在我该如何实现StudentPage.jsp。你能告诉我做这件事所需的代码或参考资料吗
谢谢。
2条答案
按热度按时间qeeaahzv1#
如果您的列表是这样的:
List<Student>
StudentList,而Student是您可以实现StudentPage.jsp:
如果像这样返回列表:
List<List<String>>
,则可以执行以下操作:s6fujrry2#
这不是Struts2的工作方式。
调用方法时,该方法必须仅返回字符串结果。该字符串结果被Map到struts.xml中,以返回特定的结果(在您的例子中,是一个JSP)。
要从JSP访问Action数据,您需要访问您想要读取的字段的getter。现有的任何IDE都能够为您编写getter和setter。如果您使用的是Eclipse、ALTSHIFTS和R,那么肯定会有所帮助。
此外,就像OOP(面向对象编程)建议的那样,您应该使用对象来承载/传输数据,使用类似
findStudents()
的方法(而不是findIds()
,然后调用每个id
)。假设像这样的一个学生对象
在您的操作中,您应该声明它们的私有列表,当然包括getter/setters,并在名为:
使用如下配置
请注意,
<result>
等于<result name="success">
(称为智能默认设置),当未指定method
时,将执行execute()
方法。然后在JSP中,迭代结果并一次打印每个
Student
对象: