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);

}

}

java action url,Java ViewHandler.getActionURL方法代码示例相关推荐

  1. java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例

    本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...

  2. java polygon 用法_Java Polygon.getBounds方法代码示例

    import java.awt.Polygon; //导入方法依赖的package包/类 private SelectionShape translatePointsToRealSize(Select ...

  3. java makedir用法_Java Files.makeDir方法代码示例

    import org.nutz.lang.Files; //导入方法依赖的package包/类 protected void download(String openid, String media_ ...

  4. java soap封装_Java SOAPMessage.writeTo方法代码示例

    import javax.xml.soap.SOAPMessage; //导入方法依赖的package包/类 private byte[] createProbeXML() throws SOAPEx ...

  5. java settext用法_Java JFormattedTextField.setText方法代码示例

    import javax.swing.JFormattedTextField; //导入方法依赖的package包/类 /** * Creates a {@link JFormattedTextFie ...

  6. java args包_Java Args.positive方法代码示例

    import org.apache.http.util.Args; //导入方法依赖的package包/类 /** * Creates new instance of BHttpConnectionB ...

  7. java shape用法_Java PShape.scale方法代码示例

    import processing.core.PShape; //导入方法依赖的package包/类 public void updateAnim(){ if(pg_src_small == null ...

  8. java round指令_Java PApplet.round方法代码示例

    import processing.core.PApplet; //导入方法依赖的package包/类 public static final void updatePos() { if(follow ...

  9. Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例

    import android.view.KeyCharacterMap; //导入方法依赖的package包/类 @Override public boolean onKeyDown(int keyC ...

  10. java gettext用法_Java Context.getText方法代码示例

    import android.content.Context; //导入方法依赖的package包/类 /** * Song Details * * @param context * @param t ...

最新文章

  1. mysql变量使用总结
  2. 判断接收的数据中是否有中文
  3. html 动态创建表格,jquery动态创建表格
  4. 时间序列研(part10)--误差修正模型
  5. 得天独厚的生态优势_云南农业得天独厚的三大优势
  6. arm-linux测网速工具,用Iperf工具测试网速和网络质量
  7. 小福利,介绍excel高阶函数2
  8. 江苏省秋c语言二级用什么软件,在哪里可以查到江苏省计算机c语言二级考试资料?...
  9. LeetCode算法解析之“箭爆气球问题”
  10. 微信html代码怎么换行,微信小程序文本如何换行
  11. latex如何设置字体并加粗_Latex设置字体大小,加粗,加下划线,变斜体_孩纸气_新浪博客...
  12. Linux内核模块编程指南(一)(转)
  13. 使用jr-qrcode插件生成图片格式的二维码
  14. linux定时任务crond那些事!
  15. 如何训练GAN?训练GAN的技巧和方法
  16. 洛谷P5613 黑蚊子多
  17. 流媒体技术知识梳理整合
  18. FRM计算器使用流程你知道吗?
  19. 检验检测机构采样作业指导书
  20. mysql checksum_mysql8 参考手册--CHECKSUM TABLE语句

热门文章

  1. 含蓄:为彼此的交往留下余地 — 《别输在不会表达上》
  2. PHP7实战开发简单CMS内容管理系统(3) 引入后台首页
  3. 安卓应用性能调试和优化经验分享
  4. HDMI热插拔检测原理
  5. Java序列化技术性能分析(JDK原生与Protostuff)
  6. http 性能测试. Apache ab 使用.
  7. JavaScript实现对象的深度克隆及typeof和instanceof【简洁】【分享】
  8. Decorator模式设计模式
  9. SSI指令使用详解(转)
  10. 也谈设计模式,实例票据打印 解析 Decorator