java action url,Java ViewHandler.getActionURL方法代码示例

import javax.faces.application.ViewHandler; //导入方法依赖的package包/类

public String getOpenPageURL(String pageName, boolean readOnly) {

try {

FacesContextEx facesContext = FacesContextEx.getCurrentInstance();

StringBuilder buff = new StringBuilder();

// If there is a query string, preserve it

String qs = null;

if (StringUtil.isNotEmpty(pageName)) {

int qsPos = pageName.indexOf('?');

if(qsPos>=0) {

qs = pageName.substring(qsPos+1);

pageName = pageName.substring(0,qsPos);

}

}

if (StringUtil.isEmpty(pageName)) {

pageName = DatabaseConstants.VIRTUAL_PAGE_NAME;

}

if (pageName.startsWith("/")) {

ViewHandler viewHandler = facesContext.getApplication().getViewHandler();

pageName = viewHandler.getActionURL(facesContext, pageName);

}

buff.append(pageName).append('?'); //$NON-NLS-1$

boolean includeDatabaseName;

boolean suppressDatabaseNameParam = getBooleanProperty(facesContext,

"xsp.dominoView.url.databaseName.suppress", //$NON-NLS-1$

/*default*/false);

if( suppressDatabaseNameParam ){

// For SPR#MKEE9U9HF3 added an option to suppress the databaseName URL part.

// The xsp.properties file has explicitly suppressed the databaseName in the URL.

includeDatabaseName = false;

}else{

// MWD: no need to include databaseName parameter if this is Domino AND the dbName in the datasource is null

// SPR# EGLN92PHT6 Without the databaseName the link will default to the current database anyway

if( _wrappedObject instanceof DominoViewEntry

&& null == ((DominoViewEntry)_wrappedObject).getDatabaseName() ){

includeDatabaseName = false;

}else{

includeDatabaseName = true;

}

}

// PHIL: we use the universal ID here so we can easily transform this to an HTTP server URL

if (includeDatabaseName) {

String databaseName = getDatabaseName();

if(StringUtil.isNotEmpty(databaseName)) {

buff.append(DatabaseConstants.DATABASE_NAME).append('=').append(databaseName).append('&'); //$NON-NLS-1$ //$NON-NLS-2$

}

}

buff.append(DatabaseConstants.DOCUMENT_ID).append('=').append(getUniversalID()).append('&'); //$NON-NLS-1$ //$NON-NLS-2$

buff.append(DatabaseConstants.ACTION).append('=').append(getTarget(readOnly)); //$NON-NLS-1$ //$NON-NLS-2$

if(qs!=null) {

buff.append('&');

buff.append(qs);

}

//According to Phil there was a problem with this being double-encoded

//return URLUtil.encode(buff.toString(), "UTF-8"); //$NON-NLS-1$

return buff.toString();

} catch(NotesException ex) {

throw new FacesExceptionEx(ex);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值