kapok

垃圾桶,嘿嘿,我藏的这么深你们还能找到啊,真牛!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  455 随笔 :: 0 文章 :: 76 评论 :: 0 Trackbacks
http://dev2dev.bea.com.cn/techdoc/wlportal/200312115.html

要进一步了解WebLogic Workshop方面的信息,请参照我们WebLogic Workshop FAQ

1.  在页面流流视图中,为什么看不到由外部页面(即不属于当前页面流目录的页面)引发的动作?

2.  WebLogic Express上,可以部署使用Java页面流(JPF)和NetUI标签库的web应用吗?

3.  页面流何时被销毁?

4.  如何访问被嵌套页面流的父(嵌套)页面流?

5.  一个JSP页面与定义消息源的JPF文件不在同一个文件夹下,该JSP如何使用此JPF<netui:error>元素中的消息源?

6.  Workshop 8.1支持StrutDynaValidatorForm吗?

7.  如何为使用排序服务的网格设置初始排序?

8.  如何指定<netui:imageButton>元素中的“action”参数?

9.  JSP中使用控件时,如何为其指定属性?

10.             为什么存在允许我们使用pageContext.getAttributepageContext.setAttribute<netui:GetData>标签,却不存在类似的<netui:SetData>标签?

11.             如何将动态数据传递给<netui:methodParameter>标签?

12.             如何使第三方或特定于应用的标签库出现在IDE 选项板(Pallette)窗口中?

13.             当在netui-data:repeater中嵌套netui-data:repeater时,如何能够访问最内部repeater中的外部项的属性?

14.             有没有办法将NetUI标签中的XScript表达式绑定到jsp页面中的局部变量?

15.             JSLTXScript之间有什么关系?

16.             NetUIpageContext数据绑定作用域与javax.servlet.http.PageContext属性映射之间有什么关系?

17.             如何对NetUI标签库中的各种标签加以分类,以使其更好理解?

18.             页面流支持Struts Tiles吗?

19.             在页面流数据绑定作用域内,我能够使用的各种可用属性有哪些?

20.             如何从当前页面流的JSP中调用不同页面流中的动作?

问:在页面流流视图(PageFlow View)中,为什么看不到由外部页面(即不属于当前页面流目录的页面)引发的动作?

答:为了使页面流流视图(PageFlow View)看起来更加一目了然,Workshop在流视图中显示了对外部页面(不属于当前页面流目录的页面)的引用,但是没有显示任何由这些外部页面引发的动作。要查看由外部页面引发的动作,您需要在与相应页面所在的目录中打开页面流的流视图。

问:在WebLogic Express上,可以部署使用Java页面流(JPF)和NetUI标签库的web应用吗?

答:答案是肯定的,使用JPFNetUI标签库的web应用可以被用在WebLogic ExpressWLX)上。然而,您不能在WLX上使用控件,因为它们使用了EJB/JMS。在Service Pack 2上,页面流和NetUI标签库将能够以一种独立于平台的方式为servlet容器(而不仅仅是WebLogic服务器)上的运行时部署所用。

问:页面流何时被销毁?

答:页面流被销毁的时候是:

a.       流移动到不同的、不可嵌套的页面流时

b.       被嵌套的页面流返回到嵌套它的页面流时

c.       当会话超时并被销毁时。当前Http会话的生存期是页面流能够具有的最长生存期。

注意,这里有一点很重要,即任何被嵌套的页面流都隐藏在嵌套页面流的“栈”中,并且对于当前被嵌套的页面流来说,无需返回到嵌套它的页面流,即可转到外部页面流(从而销毁了嵌套页面流的整个栈)。

问:如何访问被嵌套页面流的父(嵌套)页面流?

答:您可以使用下列方法从被嵌套的页面流中访问嵌套页面流。

PageFlowController parentPageFlow = PageFlowUtils.getNestingPageFlow(getRequest());


如果函数

"PageFlowUtils.getNestingPageFlow( getRequest() )"


返回null,这就意味着被嵌套的页面流是被直接调用的,而不是通过父页面流调用的。

问:一个JSP页面与定义消息源的JPF文件不在同一个文件夹下,该JSP如何使用此JPF<netui:error>元素中的消息源?

答:如果您正在JSP中引用的消息源被定义为“test”文件夹(位于web项目的根目录下)中页面流的默认消息源,那么通过在“bundle”名称之前添加其后带有文件夹名称的“org.apache.struts.action.MESSAGE”前缀,您可以像下面这样使用<netui:error>元素:

<netui:error bundle="org.apache.struts.action.MESSAGE/test"

value="myerror"></netui:error>


或者

<netui:errors bundle="org.apache.struts.action.MESSAGE/test" </netui:errors>


如果您已经在页面流中使用“err”键定义了消息源,如下所示:

 * @jpf:message-resources key="err" resources="validation.test.Errors"


您需要将org.apache.struts.action.MESSAGE”字符串替换为键值,如下所示:

<netui:error bundle="err/test" value="myerror"></netui:error>


问:Workshop 8.1支持StrutsDynaValidatorForm吗?

答:Workshop 8.1版本不支持StrutsDynaValidatorForm

问:如何为使用排序服务的网格设置初始排序?

答:在版本8.1中,SortFilterService不支持设置过滤器的初始排序。您始终可以在JPF中手动创建一个排序,或者在RowSet控件上的SQL中使用静态的WHEREORDER BY子句。关于这些方法惟一的限制是,当为页面添加书签时,排序与过滤器不会反映在所使用的URL中。

问:如何指定<netui:imageButton>元素中的“action”参数?

答:<netui:imageButton>元素不支持“action”参数。它总是前移到与表单相关的默认动作。您可以使用<netui:imageAnchor>元素作为代替,如下所示:

<netui:imageAnchor border="0" action="foo" src="/foo/bar.gif" width="68" height="24"/>


问:在JSP中使用控件时,如何为其指定属性?

答:不幸的是,当前版本不支持这种行为。但存在其他两种选择:

1.  执行页面流中控件的方法,并将结果存放于request及动作表单中传递给相应的页面。

2.  使用callControl标签的控制属性中的表达式,直接绑定到一个控件,该控件在页面流中被公开为如下形式:

<netui-data:callControl controlId="{pageFlow.myDatabaseControl}" ... />


接下来,您可以使用页面流中控件实例上的注解。

问:为什么存在允许我们使用pageContext.getAttributepageContext.setAttribute<netui:GetData>标签,却不存在类似的<netui:SetData>标签?

答:getData标签的作用是,允许JSP作者针对由于数据绑定而产生的对象书写scriptlet。我们不提供setData标签,因为我们要使程序设计模型和工具继续支持它,使其专注于在页面流中添加业务/状态维护逻辑。任何对(session|request).setAttribute的调用多半应该在一个动作(action)内完成。这可以避免页面出现副作用,并使它们更加容易维护。

问:如何将动态数据传递给<netui:methodParameter>标签?

答:我们可以使动态数据可以为<netui:methodParameter>标签所用,具体方法是从pageContext变量来设置并访问它,如下所示:

<%

String s = "name";

pageContext.setAttribute("theName", s);

%>

<netui-data:callControl controlId="productsDBControl"

method="insertProduct">

 <netui-data:methodParameter value="{pageContext.theName}"/>>

</netui-data:callControl>


问:如何使第三方或特定于应用的标签库出现在IDE 选项板(Pallette)窗口中?

答:要在IDE中为Pallette窗口添加一个标签库,您需要:

1.  将标签库JAR添加到相关项目的WEB-INF/lib目录中。

2.  web.xml中添加一项使其指向标签库的TLD文件,并赋予相应的URI,这使得JSP文件通过该URI引用TLD

接着,您可以打开一个JSP,查看Insert菜单或标签选项板,以确保标签库中的标签能够显示出来。

问:当在netui-data:repeater中嵌套netui-data:repeater时,如何能够访问最内部repeater中的外部项的属性?

答:您可以访问最内部repeater中外部repeater的属性,具体方法是使用一个形如“{container.container.*}”的表达式,其中第一个容器引用当前的repeater,而第二个容器则引用其父repeater,等等。还有另外一种办法,通过使用netui-data:getData标签,您可以在页面上下文中的外部repeater中设置一个变量,并在形如{pageContext.*}的被嵌套的repeater中访问该变量。

问:有没有办法将NetUI标签中的XScript表达式绑定到jsp页面中的局部变量?

答:<netui-data:getData>标签可以用于计算XScript表达式的值,并将其放置到JSPpageContext中。接下来就可以在scriptlet中访问pageContext中的变量。例如,

<netui-data:getData resultId="first" value="{actionForm.firstname}"/>

    <% String firstName = (String) pageContext.getAttribute("first"); %>


问:JSLTXScript之间有什么关系?

答:在当前的版本中,JSTL的表达式语言(EL)与XScript之间没有任何关系。您可以在需要的时候使用JSTL标签,而脚本语言不会彼此干扰。

问:NetUIpageContext数据绑定作用域与javax.servlet.http.PageContext属性映射之间有什么关系?

答:NetUIpageContext数据绑定作用域只不过是javax.servlet.http.PageContext属性映射顶部的一层而已。这个上下文的定义是,它访问页面作用域内的名称/值对的映射。例如,下面这种形式是合法的:

<%

    pageContext.setAttribute("myPageContextVar", "A Foo String");

%>


接下来的这两种形式是完全等同的:

<netui:content value="{pageContext.myPageContextVar}"/>



<% out.write(pageContext.getAttribute("myPageContextVar"); %>


问:如何对NetUI标签库中的各种标签加以分类,以使其更好理解?

答:对NetUI标签库值的标签进行分类的基本方法是,这些标签是只读的,还是可读写的(即是否与服务器进行数据的交互)。

基于这标准,标签可以被划分为三类:

a.  只读 Read-Only

只读标签有<netui:content><netui:label>等等。它们从标签中的“value”属性中读取数据,但不会将数据发回给服务器。

b.  读写单值 Read-Write Single Value

这一类的标签有<netui:textbox><netui:textarea><netui:checkbox>等等。这些标签需要了解两件事情:

l         JSP呈现时,在何处获取数据片断。

l         在请求提交时,将数据片断放置到何处。

“数据片断”即为“dataSource”属性的值。请注意,这与javax.sql.Datasource对象没有任何关系。

c.  读写多值 Read-Write multiple value

这一类标签包括<netui:checkBoxGroup><netui:select>等等,它们不过是上面一类标签的多值版本罢了。它们同样需要了解从何处获取各种选项,以便从服务器读取并显示给用户。它们可以从“optionsDataSource”属性中获得。“dataSource”属性被用于引用将被写回到服务器上的数据。

问:页面流支持Struts Tiles吗?

答:在当前的版本中,页面流不支持下面这种做法,即通过在页面流中使用Struts-merge功能以求在页面流中使用Struts Tiles。这是因为Tiles要求使用它自己的RequestProcessor,而这会干扰页面流RequestProcessor。然而,我们的确支持Tiles模块与页面流在同一个Web项目中共存与交互。

问:在页面流数据绑定作用域内,我能够使用的各种可用属性有哪些?

答:在页面流数据绑定作用域内,可用的属性包括任何公共字段,以及任何开发人员在特定页面流中定义的公共JavaBean属性。例如,下面的页面流定义了可以与标签属性中的“{pageFlow.name}”绑定的“name”属性。

public class Controller extends PageFlowController

{

    public String name;

    /**

     * @jpf:action

     * @jpf:forward name="index" path="index.jsp"

     */

    protected Forward begin()

    {

        return new Forward("index");

    }

}

问:如何从当前页面流的JSP中调用不同页面流中的动作?

答:要从当前页面流的JSP中调用不同页面流中的动作,您可以使用<netui:anchor>标签中的“href”属性。(注意,您不能使用“action”属性,因为它只能用于调用当前页面流中的动作)。您可以构造遵循模式的URI

"<directory>/<action>.do",


例如:.,

<netui:anchor href="/otherPageFlow/myMethodOne.do">Do Method

One</netui:anchor>

posted on 2005-05-20 10:15 笨笨 阅读(856) 评论(0)  编辑  收藏 所属分类: J2EEALLWeblogic Portal

只有注册用户登录后才能发表评论。


网站导航: