Primefaces 在panelgrid而不是datatable中调用动态值
我想在panelgrid中调用动态值,而不是datatable。在datatable中,我得到了动态值,但我想在panelgrid中调用动态值。如果有人知道如何访问panelgrid中的动态值,请给我答案 java类:Primefaces 在panelgrid而不是datatable中调用动态值,primefaces,Primefaces,我想在panelgrid中调用动态值,而不是datatable。在datatable中,我得到了动态值,但我想在panelgrid中调用动态值。如果有人知道如何访问panelgrid中的动态值,请给我答案 java类: public List<Student> getStuDetails() { Transaction trns = null; students = new ArrayList<Student>();
public List<Student> getStuDetails() {
Transaction trns = null;
students = new ArrayList<Student>();
Session session = getSession();
try {
trns = session.beginTransaction();
String sql = "select name,age,profession from student where sid = " + sid;
SQLQuery query = session.createSQLQuery(sql).addScalar("name", new StringType()).addScalar("age", new IntegerType()).addScalar("profession", new StringType());
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Student student = new Student();
student.setName(row[0].toString());
student.setAge(Integer.parseInt(row[1].toString()));
student.setProfession(row[2].toString());
students.add(student);
}
trns.commit();
} catch (HibernateException e) {
e.printStackTrace();
trns.rollback();
} finally {
session.flush();
session.close();
}
return students;
}
public List getStuDetails(){
事务trns=null;
学生=新数组列表();
Session=getSession();
试一试{
trns=session.beginTransaction();
String sql=“从学生中选择姓名、年龄、职业,其中sid=“+sid;
SQLQuery query=session.createSQLQuery(sql).addScalar(“name”,new StringType()).addScalar(“age”,new IntegerType()).addScalar(“profession”,new StringType());
List rows=query.List();
对于(对象[]行:行){
学生=新生();
student.setName(行[0].toString());
setAge(Integer.parseInt(行[1].toString());
student.setProfession(第[2]行).toString();
学生。添加(学生);
}
trns.commit();
}捕获(休眠异常e){
e、 printStackTrace();
trns.rollback();
}最后{
session.flush();
session.close();
}
留学生;
}
jsf代码:
<p:panelGrid id="pgrid" columns="2">
<p:outputLabel value="Name:"/>
<p:outputLabel value="Austin"/>
<p:outputLabel value="Age:"/>
<p:outputLabel value="26"/>
<p:outputLabel value="Profession"/>
<p:outputLabel value="job"/>
</p:panelGrid>
我修改了你的代码,它对我有用。我创建了三个变量sname,sage和sprofession,还需要创建getter/setter,这里我使用的托管bean名称是“student” 更新的Java类:
private String sname;
private Integer sage;
private Integer sprofession;
public List<Student> getStuDetails() {
Transaction trns = null;
students = new ArrayList<Student>();
Session session = getSession();
try {
trns = session.beginTransaction();
String sql = "select name,age,profession from student where sid = " + sid;
SQLQuery query = session.createSQLQuery(sql).addScalar("name", new StringType()).addScalar("age", new IntegerType()).addScalar("profession", new StringType());
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Student student = new Student();
student.setName(row[0].toString());
student.setAge(Integer.parseInt(row[1].toString()));
student.setProfession(row[2].toString());
students.add(student);
}
sname = students.get(0).setName();
sage = students.get(0).setAge();
sprofession = students.get(0).setProfession();
trns.commit();
} catch (HibernateException e) {
e.printStackTrace();
trns.rollback();
} finally {
session.flush();
session.close();
}
return students;
}
<p:panelGrid id="pgrid" columns="2">
<p:outputLabel value="Name:"/>
<p:outputLabel value="#{student.sname}"/>
<p:outputLabel value="Age:"/>
<p:outputLabel value="#{student.sage}"/>
<p:outputLabel value="Profession"/>
<p:outputLabel value="#{student.sprofession}"/>
</p:panelGrid>
私有字符串sname;
私有整数;
私有整数存储;
公共列表getStuDetails(){
事务trns=null;
学生=新数组列表();
Session=getSession();
试一试{
trns=session.beginTransaction();
String sql=“从学生中选择姓名、年龄、职业,其中sid=“+sid;
SQLQuery query=session.createSQLQuery(sql).addScalar(“name”,new StringType()).addScalar(“age”,new IntegerType()).addScalar(“profession”,new StringType());
List rows=query.List();
对于(对象[]行:行){
学生=新生();
student.setName(行[0].toString());
setAge(Integer.parseInt(行[1].toString());
student.setProfession(第[2]行).toString();
学生。添加(学生);
}
sname=students.get(0.setName();
sage=students.get(0.setAge();
sprofession=students.get(0.setProfession();
trns.commit();
}捕获(休眠异常e){
e、 printStackTrace();
trns.rollback();
}最后{
session.flush();
session.close();
}
留学生;
}
更新的panelgrid:
private String sname;
private Integer sage;
private Integer sprofession;
public List<Student> getStuDetails() {
Transaction trns = null;
students = new ArrayList<Student>();
Session session = getSession();
try {
trns = session.beginTransaction();
String sql = "select name,age,profession from student where sid = " + sid;
SQLQuery query = session.createSQLQuery(sql).addScalar("name", new StringType()).addScalar("age", new IntegerType()).addScalar("profession", new StringType());
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Student student = new Student();
student.setName(row[0].toString());
student.setAge(Integer.parseInt(row[1].toString()));
student.setProfession(row[2].toString());
students.add(student);
}
sname = students.get(0).setName();
sage = students.get(0).setAge();
sprofession = students.get(0).setProfession();
trns.commit();
} catch (HibernateException e) {
e.printStackTrace();
trns.rollback();
} finally {
session.flush();
session.close();
}
return students;
}
<p:panelGrid id="pgrid" columns="2">
<p:outputLabel value="Name:"/>
<p:outputLabel value="#{student.sname}"/>
<p:outputLabel value="Age:"/>
<p:outputLabel value="#{student.sage}"/>
<p:outputLabel value="Profession"/>
<p:outputLabel value="#{student.sprofession}"/>
</p:panelGrid>
注意:但是如果您将使用panelgrid而不是datatable,那么将来您将无法导出您的panelgrid数据,因为dataexporter不支持panelgrid或panel。我修改了您的代码并对其进行了修改。我创建了三个变量sname,sage和sprofession,还需要创建getter/setter,这里我使用的托管bean名称是“student” 更新的Java类:
private String sname;
private Integer sage;
private Integer sprofession;
public List<Student> getStuDetails() {
Transaction trns = null;
students = new ArrayList<Student>();
Session session = getSession();
try {
trns = session.beginTransaction();
String sql = "select name,age,profession from student where sid = " + sid;
SQLQuery query = session.createSQLQuery(sql).addScalar("name", new StringType()).addScalar("age", new IntegerType()).addScalar("profession", new StringType());
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Student student = new Student();
student.setName(row[0].toString());
student.setAge(Integer.parseInt(row[1].toString()));
student.setProfession(row[2].toString());
students.add(student);
}
sname = students.get(0).setName();
sage = students.get(0).setAge();
sprofession = students.get(0).setProfession();
trns.commit();
} catch (HibernateException e) {
e.printStackTrace();
trns.rollback();
} finally {
session.flush();
session.close();
}
return students;
}
<p:panelGrid id="pgrid" columns="2">
<p:outputLabel value="Name:"/>
<p:outputLabel value="#{student.sname}"/>
<p:outputLabel value="Age:"/>
<p:outputLabel value="#{student.sage}"/>
<p:outputLabel value="Profession"/>
<p:outputLabel value="#{student.sprofession}"/>
</p:panelGrid>
私有字符串sname;
私有整数;
私有整数存储;
公共列表getStuDetails(){
事务trns=null;
学生=新数组列表();
Session=getSession();
试一试{
trns=session.beginTransaction();
String sql=“从学生中选择姓名、年龄、职业,其中sid=“+sid;
SQLQuery query=session.createSQLQuery(sql).addScalar(“name”,new StringType()).addScalar(“age”,new IntegerType()).addScalar(“profession”,new StringType());
List rows=query.List();
对于(对象[]行:行){
学生=新生();
student.setName(行[0].toString());
setAge(Integer.parseInt(行[1].toString());
student.setProfession(第[2]行).toString();
学生。添加(学生);
}
sname=students.get(0.setName();
sage=students.get(0.setAge();
sprofession=students.get(0.setProfession();
trns.commit();
}捕获(休眠异常e){
e、 printStackTrace();
trns.rollback();
}最后{
session.flush();
session.close();
}
留学生;
}
更新的panelgrid:
private String sname;
private Integer sage;
private Integer sprofession;
public List<Student> getStuDetails() {
Transaction trns = null;
students = new ArrayList<Student>();
Session session = getSession();
try {
trns = session.beginTransaction();
String sql = "select name,age,profession from student where sid = " + sid;
SQLQuery query = session.createSQLQuery(sql).addScalar("name", new StringType()).addScalar("age", new IntegerType()).addScalar("profession", new StringType());
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Student student = new Student();
student.setName(row[0].toString());
student.setAge(Integer.parseInt(row[1].toString()));
student.setProfession(row[2].toString());
students.add(student);
}
sname = students.get(0).setName();
sage = students.get(0).setAge();
sprofession = students.get(0).setProfession();
trns.commit();
} catch (HibernateException e) {
e.printStackTrace();
trns.rollback();
} finally {
session.flush();
session.close();
}
return students;
}
<p:panelGrid id="pgrid" columns="2">
<p:outputLabel value="Name:"/>
<p:outputLabel value="#{student.sname}"/>
<p:outputLabel value="Age:"/>
<p:outputLabel value="#{student.sage}"/>
<p:outputLabel value="Profession"/>
<p:outputLabel value="#{student.sprofession}"/>
</p:panelGrid>
注意:但是如果使用panelgrid而不是datatable,然后,将来您将无法导出您的panelgrid数据,因为dataexporter不支持panelgrid或panel。您可以借助变量在panelgrid中实现动态值…创建相关变量的getter setter并在该变量中存储取数值…之后,您可以使用managebean名称在jsf代码中调用该变量比如managebean.variables.谢谢Charlie,我试过了。请阅读一些jsf教程……考虑到公认的答案,这里有很多