关于页面数据缓存问题我们经常遇到一个问题,A页面跳到B页面,再从B页到跳到A页面,这时A页面上的组件的值还存在。原因:后台Bean为Session范围的,那们我们可以通过两种方式解决这个问题,第一种是设置Bean的范围为request的,但这种方式会导致datagrid会取不到数据,这时必须改变datagrid的写法才可以取到数据;第一种解决的方法是保持session范围,在重新进入A页面之前把A页面的值清空即可。 如何在一个页面包含另一个页面<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE HTML PUBLIC "" ""> <f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout" xmlns:h="http://java.sun.com/jsf/html" xmlns:ajax="http://www.apusic.com/jsf/ajax" xmlns:ui="http://java.sun.com/jsf/facelets" renderKitId="AJAX"> <ui:include src="XXXX.xhtml"></ui:include> </f:view> 关于如何在xhtml页面中使用c:if标签只需在f:view中引入以下代码即可以页面中使用c:if标签,代码如下:
xmlns:c="http://java.sun.com/jstl/core"
如何实现客户端自动截取内容长度,超出部分以省略号表示用css级联样式来实现,具体实现过程为: <style type="text/css"> body{font-size:13px;color:#8c966b;} div{clear:both;width:340px;border:1px solid #333;margin:3px;padding:3px; height:20px;} div a{color:#8c966b;text-decoration:none;} div a:hover{text-decoration:underline;} div a{display:block;width:310px;white-space:nowrap;overflow:hidden;float:left; -o-text-overflow: ellipsis; /* for Opera */ text-overflow:ellipsis; /* for IE */ } div:after{content:"...";padding-left:3px;font-size:12px;}/* for Firefox */ </style> 可以这样来使用上面的css级联样式: <div><a href="">好处是:有利于内容完整性,有利于SEO,无需后台程序处理,可以在前台随时调节要截取的长度。</a></div> 在iframe页面中执行window.show()方法,iframe会自动scroll到浏览器的可视区顶部(IE、google浏览器下)这是由于这些浏览器下href="#"的a标签被单击时均会是页面滚动到最上面。可以有以下几种方案解决这个问题:
两个页面之间互相跳转,在firefox 2上导致页面无法正常显示这是由于firefox2的缓存策略造成的。要避免此问题可关闭firefox的网页缓存。操作如下:
如何在AOM的应用页面中配置,使得IE 8兼容IE 7模式在页面中加入<om:emulateIE7>标签。当页面中有om:emulateIE7标签时,AOM引擎将在响应页面的head中渲染<META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> 。通知IE8使用IE7兼容模式来显示页面。 xhtml页面脚本里for,while循环语句的用法<script> // <![CDATA[ function f(){ for(...) { .... } } //]]> </script> 如何实现页面超时的配置在<w:head></w:head>中间加入javascript代码,代码为: <script type="text/javascript"> <!-- Ext.override(Ext.data.FacesScriptProxy,{ timeout : 30000}); --> </script> 如何将输入框中输入的小写字母自动转换为大写可以用javascript实现,具体过程为: <input type="text" onkeyup="a(event)"/> <script type="text/javascript"> function a(oEvent) { oEvent.srcElement.value=oEvent.srcElement.value.toUpperCase(); } </script> 如何在LiteBean中用Browser动态执行script代码用Browser类将要执行的脚本发送到客户端执行。具体过程如下:
StringBuffer strbuffer=new StringBuffer("");
strbuffer.append("var script1 = document.createElement('script');");
strbuffer.append("script1.type='text/javascript';");
...
Browser.execClientScript(strbuffer.toString());
对于Ext相关的组件,如何设置自己的ExtConfig对象Ext相关的组件有initConfig属性,用户可以设置自己的ExtConfig对象,这个ExtConfig对象可以增删改系统提供的或用户通过其他方式提供的属性,且具有最高的优先级。initConfig属性接受ExtConfig和String两种类型。页面中直接在组件上设置字符串形式的initConfig属性,使用方法如下:
<layout:panel id="test46" title="My Panel" initConfig='{"applyTo":null, "renderTo":"test46"}'/>
在FireFox下,布局采用cardLayout,其中有多个panel,在页面加载的过程中先看到最后一个panel的内容,然后才显示第一个panel的内容这个问题是属于浏览器对脚本的解析问题,cardLayout中panel的加载是按顺序进行的,全部加载完后将第一个设为active。就AOM框架目前的渲染机制来说,建议客户采用IE 或其它浏览器。 在firefox下ajax页面导航地址栏出现wyciwyg这个问题属于firefox内部页面缓存机制问题,可删除w:head标签中关于Content-Type的声明解决。 |