EBS OAF 发展 URL商标、加密和编码

(版权声明。我原来的或翻译的文章,如需转载,转载的个人学习,转载请注明出处;否则,请与我联系。版权所有)

马克

当您指定页面定义声明URL参数,文本也能够指定替代值的标记,这些标记在生成时会从控件所关联的VO对象属性中获取值(这也就是说。这些控件必须绑定到一个VO对象上)。

这个常常被使用,比方。表中的一列要把主键值传入到具体页面用于查询。

标记替代演示样例(使用VO对象属性名”OrderNum”):

OA.jsp?OAFunc=FWK_TBX_T_PO_PAGE&order={@OrderNum}

标记的类型

标记使用一个特殊的字符前缀来告诉OAF框架怎样在执行时决定它的值(注意编码和加密的概念在后面有描写叙述)

l  {!Attr} –在URL中放置{!}来加密属性值(比方,

 OA.jsp?...&ssn={!SSN}&...

).

使用OAPageContext.getParameter("ssn")返回的是解密后的參数值。

l  {@Attr} –在URL中放置{@}来对属性值进行编码(比方, OA.jsp?...&addr={@EmpAdd}&...).

使用OAPageContext.getParameter("addr")返回的是解码后的參数值。

l  {$Attr} –一般的替代标记(无编码或者加密),因此你自己要确认替代值不会打乱URL。

l  {@@RETURN_TO_MENU} –就全然像演示的一样能够用于指定一个应用组件的Destination URI属性来把用户返回到EBS 个人主页页面上去。当进行一个JSP跳转时假设你须要指定这个的话,那么这个的对应常量值是OAWebBeanValues.RETURN_TO_MENU_URL。

l  {@@RETURN_TO_PORTAL} ––就全然像演示的一样能够用于指定一个应用组件的Destination URI属性来把用户返回到一个已执行的门户页面。当进行一个JSP跳转时假设你须要指定这个的话,那么这个的对应常量值是OAWebBeanValues.RETURN_TO_PORTAL_URL。

编码

你为请求參数指定的全部值都必须遵守HTTP语法规则.比方,你不能传递一个包括空格的URL參数值;以下的參数值会引起一个执行时错误当对应的URL被訪问到时: buyerName=John Doe.

要解决问题,我们须要对这些值进行编码,这意味着,编码方法会使用标准的替代值来取代有问题的字符,就像以下的演示样例演示的: buyerName=John%20Doe.

l  当OAF框架加入參数到请求中时(比方,form字段值),它会自己主动对其编码。

l  当你在调用setForward*方法过程中把參数放入请求时,OAF框架也会自己主动对这些值进行编码.

l  当你往你自己组装的URL中放置參数时(假设。比方。你通过调用setDestination方法来为一个bean设置URL),你必须为全部可能包括无效字符的字符串部分进行编码.要这么做的话,你须要传递这个字符串到oracle.apps.fnd.framework.webui.OAUrl工具类的encode方法中.

小技巧:假设你手工设置一个不会包括无效字符的URL參数值(比方,”value=Y”),那么你不须要为编码这一步所费心。

l  当你使用OAPageContext.putParameter把值放到请求中时,假设须要的话你必须对这个字符串进行编码。

当你调用OAPageContext.getParameter*方法时。OAF框架会自己主动对參数值进行解码。除了以下几种情况:

l  当你为Javascript方法标记使用”#”字符时。OAF框架编码标记值,可是当你调用pageContext.getParameter("<tokenName>")时,它不会自己主动对其解码.你自己要解码时,你须要对getParameter返回的值使用OAUrl decode方法。

l  当你调用putParameter方法放入一个编码的值时,OAF框架不会对其解码。在这样的情况下。你也必须对getParameter返回的值使用OAUrl decode方法。

加密

加密是让数据模糊混乱而使其难以辨认的过程。由于URL请求參数值对用户来说可能是可见的(隐藏的form字段值也是一样的,假设用户去查看HTML页面源码)。一般假设你在URL參数或者一个异常字段上放置了敏感数据。那么你应该对其加密。

除了声明式的,上面描写叙述的基于标记的加密,OAF也在oracle.apps.fnd.framework.webui.OAPageContext中提供了方法用于手工加密和解密不论什么你编程放入到请求中的參数值。

注意:关于URL和请求參数的很多其它信息,能够參考Oracle Application Framework URL and Request Parameters

URL 标记的缺陷

就像上面的描写叙述的,假设要在URL中使用标记的话。那么对应的控件就必须绑定一个VO,且的URL标记中仅仅能使用这个VO中的属性值,

不能使用EL语言,那么R12.2对EL的扩展支持在这里也不能使用,不能获取session, transaction等等中的值。

也不能同一时候取多个VO中的属性值。

注意:尽管对应的控件就必须绑定一个VO。还好的是OAF不是必须让其绑定一个VO Attribute.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGF2b3I=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

版权声明:本文博客原创文章,博客,未经同意,不得转载。

EBS OAF 发展 URL商标、加密和编码的更多相关文章

  1. EBS OAF开发中实现參数式弹出窗体

    EBS OAF开发中实现參数式弹出窗体 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 概览 參数式弹出窗体和嵌入式弹出窗体不一样,它拥有独立 ...

  2. PHP加密与编码技术

    md5加密: string  md5( string $str [,bool $raw output=false]) md5加密方法用的挺多,有两个参数,第一个参数是要加密的字符串,第二个参数默认为f ...

  3. EBS OAF开发中怎样实现功能页签(Global Tab)

    EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...

  4. URL的加密解密方法

    package day11.about_url_encoder; import java.io.UnsupportedEncodingException; import java.net.URLDec ...

  5. URL安全的Base64编码

    Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...

  6. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

  7. EBS OAF中如何在多行表中实现附件功能

    EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...

  8. EBS OAF 开发中的OAMessageRadioGroup控件

    EBS OAF 开发中的OAMessageRadioGroup控件 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 简单介绍 RadioGro ...

  9. iOS - 网址、链接、网页地址、下载链接等正则表达式匹配(解决url包含中文不能编码的问题)

    DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多 ...

随机推荐

  1. JavaWeb网站技术架构

    JavaWeb网站技术架构总结   题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充 ...

  2. angular的Dom操作

    原文 https://www.jianshu.com/p/9d7249922bda 大纲 1.angular的DOM操作 2.为什么不能直接操作DOM? 3.三种错误操作DOM的方式 4.angula ...

  3. Cash Loan----:利用脚本自动化部署系统,解放我们的双手

    [前言] 现在我们的项目发布(从git上拉代码部署到Linux上)是通过脚本来完成,生产和测试环境都是运维在控制,开发联调环境由开发来负责,之前开发环境每次部署都是先在本地打好jar包然后传到服务器上 ...

  4. 关于DP与背包

    听说过动态规划(DP)的同学应该都知道有背包问题的存在. 首先我们来了解一下动态规划 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中, 可能会有很多可行解.没一个解都对应于一 ...

  5. 【b802】火柴棒等式

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴 ...

  6. Uncaught SyntaxError: Invalid regular expression flags(看页面源代码)

    Uncaught SyntaxError: Invalid regular expression flags(看页面源代码) 一.总结 js或者jquery方面的错误看页面源代码,一下子错误就很清晰了 ...

  7. sdo_geometry 转 st_geometry

    CREATE OR REPLACE FUNCTION sdo2sde(geo SDO_GEOMETRY) RETURN st_geometry IS lx number; --类型 (点.线.面) c ...

  8. 一步步学习Linux多任务编程

    系统调用 01.什么是系统调用? 02.Linux系统调用之I/O操作(文件操作) 03.文件描述符的复制:dup(), dup2() 多进程实现多任务 04.进程的介绍 05.Linux可执行文件结 ...

  9. 小强的HTML5移动开发之路(43)——JqueryMobile页眉、工具栏和标签栏导航

    一.页眉 1.添加页眉和页脚 <div data-role="header"> <h1>第 1 页</h1> </div> < ...

  10. 【t042】炮击坦克

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在一个坐标轴上,有M辆坦克,第i辆坦克在时刻0处于pos[i](pos[i]>0),speed[ ...