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

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.


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

posted on 2015-08-12 13:37  gcczhongduan  阅读(206)  评论(0编辑  收藏  举报