- 浏览: 34488 次
- 性别:
- 来自: 北京
最新评论
-
xiaojianbo:
yourenyouyu2008 写道思路很精巧,充分利用了on ...
RichFaces中如何让ModalPanel在Ajax验证有错误时不关闭 -
yourenyouyu2008:
思路很精巧,充分利用了oncomplete页面响应后才执行的特 ...
RichFaces中如何让ModalPanel在Ajax验证有错误时不关闭 -
nighthawk:
不错,很实用的技巧。
RichFaces中如何让ModalPanel在Ajax验证有错误时不关闭
文章列表
viewConfig : {
forceFit : true,
getRowClass : function(record, index) {
if (index % 2 == 0)
return "red";
else
return "green";
}
},
<style type="text/css">
.red .x-grid-cell {
background-color: #FFFFDD;
height: 30px;
}
.gr ...
JOSSO在JBOSS中安装与配置
1、JOSSO单点登录网关
1.1进入josso/bin目录,执行josso-gsh命令
1.2 安装JOSSO的核心Gateway,执行命令
gateway install --target <JBOSS_HOME> --jboss-instance default - platform jb42
此命令实际上执行了如下操作:
1.2.1 Copy <JOSSO_HOME> \dist\gateway\config目录下文件至<JBOSS_HOME>\ server\default\conf目录下
...
Grid加载数据后默认选择其中一行,在ExtJs4版本之前,可以通过 this.getSelectionModel().selectFirstRow(); 来选择,在ExtJs4.x的Ext.selection.Model中已经移除了selectFirstRow等方法,查看API可知,可通过selectRange选择:
selectRange( startRow, endRow, [keepExisting] )
Selects a range of rows if the selection model is not locked. All rows in between start ...
使用jboss-as-maven-plugin插件来发布项目到Jboss7。
pom.xml中新增:
<build>
<!-- Maven will append the version to the finalName (which is the name
given to the generated war, and hence the context root) -->
<finalName>${project.artifactId}</finalName>
...
@Name("validatorError")
@Scope(ScopeType.EVENT)
@BypassInterceptors
public class ValidatorError {
/**
* isInvalid.
* @return boolean
*/
public boolean isInvalid() {
Iterator<FacesMessage> iterator = FacesContext.getCurrentInstance()
...
private boolean isPostback(FacesContext context)
{
String renderkitId = context.getApplication().getViewHandler().calculateRenderKitId(context);
ResponseStateManager rsm = RenderKitUtils.getResponseStateManager(context, renderkitId);
return rsm.isPostback(cont ...
自定义JSF PhaseListener,需要实现javax.faces.event.PhaseListener.PhaseListener接口,页面使用可以直接用标签:
<f:phaseListener
type="org.web.jsf.listener.RegistEditableValueChangePhaseListener">
</f:phaseListener>
org.web.jsf.listener.RegistEditableValueChangePhaseListener为我的监听类
...
Richfaces验证后,验证不通过会有错误显示,当页面触发其他ajax请求时,如果想把验证错误信息清理掉,可以重写FacesStateManager来解决,关键代码:
package org.iata.isss.web.common.jsf.factory;
import java.io.IOException;
import java.util.Iterator;
import javax.faces.application.StateManager;
import javax.faces.component.EditableValueHolder;
import ja ...
Upload解决方案
概述
JSF本身并没有提供上传的组件,如果使用原生态的JSF做上传工具,可能需要花费很多额外的操作,所幸的是,Richfaces提供了一个高效可控并且易用的上传组件:<rich:fileUpload>,该组件界面简洁美观,功能丰富。下面将针对其使用方法进行详细说明。
功能介绍
关键特点如下
1,正在上传的时候能够显示进度条。(以及当前已上传文件的大小、耗时,也可以设置大小的显示格式)
JBoss启动时通过Seam组件来启用线程
样例代码,代码中组件注释说明在下面:
import static org.jboss.seam.annotations.Install.BUILT_IN;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annot ...
JSF虚拟表单,对应熟练使用JSF的人来说,可能也是很陌生的(如果之前未接触过Netbeans IDE里面的可视化JSF),我之前用过可视化JSF,觉得虚拟表单很不错,于是想迁移到JSF,Richfaces里面来,查看了很多源码和机制,终于写出来了,并且得到了大量的使用,解决了一些复杂页面的需求。
大家都知道在JSF的form里面的文本域,若验证不通过,即使是不需要提交的域,也提交不了表单。
我这里简单的写了个文档:
虚拟表单简述
(1) 说明
JSF有一个真实表单,另外可以定义多个虚拟表单。
虚拟表单由参与者和提交者组成。
虚拟表单可以有多个参与 ...
Richfaces按钮事件执行的顺序,如下这段标签代码:
<a4j:commandButton
action="#{XXX.action4}"
actionListener="#{XXX.action1}"
oncomplete=""
reRender="" >
<f:actionListener binding="#{XXX.action2}" />
<f:ac ...
Richfaces性能优化
1. rich:modalPanel标签的使用问题
发现问题:我们的页面使用rich:modalPanel比较多,而rich:modalPanel里面都加载了一些数据及渲染了一些标签,即使在没有显示的情况下,这些数据也会加载且标准也会渲染出来, ...
若系统比较慢,打开页面需要数秒,则多半是JBoss jvm参数有问题,我们可加大下jvm参数。虚拟内存一般为物理内存的3/4,假设物理内存为4G,则我们可用如下配置:
JAVA_OPTS="-Xms3072m –Xmx3072m -Xminf0.4 -Xmaxf0.6 -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 -Xgcpolicy:gencon -Xgcthreads2"
这样配置后一般会明显提升速度,但还不够,我们可再精简一下jboss的default de ...
在一些场景,我们可能需要对rich:calendar的时间范围进行限定,如:只能选择当前日期之后的,只能选择当前日期之前的,或者在startDate ~ endDate之间的。
我说下用javascript来实现的,当然也可以在后台实现(利用preloadDateRangeBegin,preloadDateRangeEnd,dataModel来实现,具体我不细说)
javascript实现如下(我这个是只能选择当前日期或之后的日期,这个可根据你的业务来限定):
<script type="text/javascript">
//&l ...