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. Spring中@Async用法详解及简单实例

    Spring中@Async用法 引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类 ...

  2. C语言实现字符串截取函数left、mid和right

    作者:iamlaosong C语言字符串截取须要自己编程实现,只是.网络时代,自然不用自己从头写了.网上各种方法的实现代码已经多如牛毛了,这儿抄录一个感觉不错的备案. #include <std ...

  3. css3-7 如何让页面元素水平垂直都居中(元素定位要用css定位属性)

    css3-7 如何让页面元素水平垂直都居中(元素定位要用css定位属性) 一.总结 一句话总结:元素定位要用css定位属性,而且一般脱离文档流更加好操作.先设置为绝对定位,上左都50%,然后margi ...

  4. php 字符串 去掉 html标签

    echo strip_tags("Hello <b>world!</b>");

  5. AE创建拓扑

    转自原文 AE创建拓扑 /// <summary> /// 创建拓朴 /// </summary> /// <param name="featureWorksp ...

  6. 以Graphicslayer为管理组来管理Element.

    转自原文 以Graphicslayer为管理组来管理Element. 前言 在AE开发过程中,我们经常使用Element(元素).它的出现让地图与用户之间的交互增加了不少的效果.在地图上,可以通过各种 ...

  7. 联想笔记本装win7

    http://jingyan.baidu.com/article/7c6fb42862d63a80642c90b8.html http://bbs.thinkworldshop.com.cn/thre ...

  8. [Angular] Pipes as providers

    In this example, we are going to see how to use Pipe as providers inject into component. We have the ...

  9. jQuery Mobile手机网站案例

    jQuery Mobile手机网站案例 一.总结 一句话总结:jQuery Mobile是纯手机框架,和amazeui和bootstrap都可以做手机网站. 1.另一款文本编辑器? jd编辑器 二.j ...

  10. php课程 6-20 字符串基础和去除空格和字符串填补函数

    php课程 6-20  字符串基础和去除空格和字符串填补函数 一.总结 一句话总结: 二.字符串 字符串定义:$str='hello world!'; 输出字符串:echo $str;print $s ...