当登陆成功后,显示一个<h:dataTable id="table" value="#{userBean.users}" var="u" border="1">加载的时候执行
private DataModel users = new ListDataModel(); public DataModel getUsers() throws UserException {
users.setWrappedData(this.getUserService().browse());//显示所有数据
return users;
}
public void setUsers(DataModel users) {
this.users = users;
}我也知道由于JSF生命周期的原因getUsers()会被执行两次.问题来了,我想当登陆成功后,显示所有数据.然后我设置一个按纽,输入查询条件,
<h:commandButton value="#{msgs.select}"
action="#{userBean.selectAction}" />//查询按纽
<h:inputText id="money" value="#{userBean.user.money}"> //查询条件
</h:inputText>public String selectAction() throws UserException {
List list = this.getUserService().select(this.user.getMoney());
System.out.print(this.user.getMoney());
System.out.print(list.size());
if (list.size() > 0)
users.setWrappedData(list); //我改变了数据源的值,没有用
return null;
}查了Hibernate sql语句:
00:50:56,046 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_
00:50:56,093 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_ where user0_.MONEY=? //selectAction已经起作用了,但是被下面的覆盖了.
00:50:56,109 INFO [STDOUT] 1000
00:50:56,109 INFO [STDOUT] 12
00:50:56,140 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_ //生命周期最后执行了getUsers() 方法,改变了的数据源的值就是被他又覆盖了.我想实现这个效果怎么办呢?
private DataModel users = new ListDataModel(); public DataModel getUsers() throws UserException {
users.setWrappedData(this.getUserService().browse());//显示所有数据
return users;
}
public void setUsers(DataModel users) {
this.users = users;
}我也知道由于JSF生命周期的原因getUsers()会被执行两次.问题来了,我想当登陆成功后,显示所有数据.然后我设置一个按纽,输入查询条件,
<h:commandButton value="#{msgs.select}"
action="#{userBean.selectAction}" />//查询按纽
<h:inputText id="money" value="#{userBean.user.money}"> //查询条件
</h:inputText>public String selectAction() throws UserException {
List list = this.getUserService().select(this.user.getMoney());
System.out.print(this.user.getMoney());
System.out.print(list.size());
if (list.size() > 0)
users.setWrappedData(list); //我改变了数据源的值,没有用
return null;
}查了Hibernate sql语句:
00:50:56,046 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_
00:50:56,093 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_ where user0_.MONEY=? //selectAction已经起作用了,但是被下面的覆盖了.
00:50:56,109 INFO [STDOUT] 1000
00:50:56,109 INFO [STDOUT] 12
00:50:56,140 INFO [STDOUT] Hibernate: select user0_.ID as ID0_, user0_.NAME as NAME0_, user0_.PASSWORD as PASSWORD0_, user0_.MONEY as MONEY0_ from USER user0_ //生命周期最后执行了getUsers() 方法,改变了的数据源的值就是被他又覆盖了.我想实现这个效果怎么办呢?
解决方案 »
- 讨论----大家在单纯使用Servlet,jsp,JavaBean做开发时都是使用那种方式来精简大量Servlet的?
- 诡异的 rollback() should not be called while in auto-commit mode.
- EJB连接数据库问题? 高手帮忙!
- Hibernate方面的问题急需请教:
- 设计模式Sigleton之问
- java里如何实现全文检索?
- 看了几天的 struts 一般的简单代码能看明白了,但是还有个关键的问题没有搞清楚,谁来指点下我
- 谁和银行打过交道?
- 100分讨教做过实际J2EE项目的朋友!
- 求助Spark高手,如何用spark去除重复列数据
- 谁了解深圳中联宏达啊?两年经验 4.5K+补贴
- struts2 + spring 2.5 + hibernate 3.2 AOP配置问题
1 你调用了 form.submit()方法,造成了第一次提交
2 你的这个js 返回了true,造成 form 自身的第二次提交此问题在firefox 下面非常明显,所以form的方法最好写成<form onsubmit=".....; return false;"
保证自身不会提交,而只使用js提交
users.setWrappedData(this.getUserService().browse());//显示所有数据
return users;
}
改成:
private DataModel users = null;
public DataModel getUsers() throws UserException {
if (users==null)
users.setWrappedData(this.getUserService().browse());//显示所有数据
return users;
} 就OK了
一次在应用请求值之前。
一次在渲染的时候。
selectAction()在中间执行。你可以试下这样改:
Object data;
public DataModel getUsers() throws UserException {
if(data==null){
data=this.getUserService().browse();
}
users.setWrappedData(data);//显示所有数据
return users;
}public String selectAction() throws UserException {
List list = this.getUserService().select(this.user.getMoney());
System.out.print(this.user.getMoney());
System.out.print(list.size());
if (list.size() > 0)
data=list; //我改变了数据源的值,没有用
……
步骤 4 选择若干备份数据存储介质,点击Next,
步骤 5 调整模板中默认的失效保护天数,点击Next,
步骤 6 配置任务调度策略
图中红色表示当日做全备,蓝色表示当日做增量备份(可能有若干次),黄色表示当日即有全备又有增量备份,白色表示当日不做备份(节假日)。未定制Schedule前,以上界面显示的是Template中的默认设置。要定制shedule,可在某一日期上用鼠标右键点击,选择”Schedule”,出现定制界面:
Recurring表示重复周期模式,Time options/use starting分别表示备份开始执行的具体时间和日期;
Recurring options表示周期具体设置,如Recurring选择了Weekly,则Recurring options可选择每周几进行备份;
Backup type表示备份模式,如全备和增量备份;
Network load表示网络负载,建议当使用专用的备份网络时选择High以达到最快的备份速度,当与业务网络共用时选择Medium或者Low以减少对业务的带宽冲击;
Backup protection表示失效保护时间设置,当备份超过设定的保护时间后可能被新的备份数据覆盖。
我们建议采用全备+增量备份的方式,如每周日晚上23:00全备,周一至周五晚上22:00作增量备份,每个备份保留3周。
步骤 7 定制完成后选择Next,到了此任务的Summary界面,可查看此任务的Summary情况,直接点击Next跳过
步骤 8 保存备份任务
选择Save as,给此任务取一个名字,设置一个任务分组名,点击OK,1个文件系统备份任务就创建好了。
2.4 启动备份任务
2.4.1 自动启动
备份任务会在Shedule里定义的时间自动执行,不需要人工干预。
2.4.2 手工启动
步骤 1 在CM Console的下拉列表菜单中选择Backup,在左边的对象面板中,展开Backup Specifications->Oracle Server,在想要启动的任务上点击右键,选择Start Backup
步骤 2 设备备份类型和网络负载,点击OK
步骤 3 HP-DP开始执行恢复,会显示恢复进度,完成后弹出对话框显示恢复结果。
2.5 恢复一个备份
步骤 1 在CM主界面左边的下拉列表中选择Restore,出现Restore树形控制界面,选择Filesystem节点下要恢复的对象,在右边窗口选择更具体的目录和文件:
默认情况下,点击”Restore”会使用最近一次备份数据恢复到原客户端的原路径下。如果想恢复到某一个特定的备份数据,可以如果右边窗口根目录上点击鼠标右键,选择”Restore Version”,
在弹出窗口选择要恢复的备份数据后点击OK:
如果想恢复到不同的客户端或者不同的路径下,可切换到”Destination”选项卡,选择恢复目标client和恢复路径。
步骤 2 点击”Restore”即可开始执行恢复操作。和备份过程一样能看到恢复进度,完成后将弹出提示。