Xpages ExtLib移动控件-如何构建切换到appPage的按钮

Xpages ExtLib移动控件-如何构建切换到appPage的按钮,xpages,Xpages,我正在为移动用户开发一个现有应用程序的XPage。我想使用ExtLib中的移动控件来实现这一点 我已经构建了一个带有SinglePageApp和一些AppPages的XPage。现在,我想构建一个带有搜索菜单、简单输入文本和启动搜索按钮的AppPage inputText绑定到sessionScope变量。我想在第二个appPage中使用该变量来获取搜索值并显示筛选/搜索视图 问题在于按钮。我不确定如何构建此按钮以移动到另一个appPage。这是我最后一次尝试,失败了,出现了运行时错误 你知道怎

我正在为移动用户开发一个现有应用程序的XPage。我想使用ExtLib中的移动控件来实现这一点

我已经构建了一个带有SinglePageApp和一些AppPages的XPage。现在,我想构建一个带有搜索菜单、简单输入文本和启动搜索按钮的AppPage

inputText绑定到sessionScope变量。我想在第二个appPage中使用该变量来获取搜索值并显示筛选/搜索视图

问题在于按钮。我不确定如何构建此按钮以移动到另一个appPage。这是我最后一次尝试,失败了,出现了运行时错误

你知道怎么让它运行还是出了什么问题吗

问候 英戈


运行时错误说明了什么

如果无法直接访问服务器上的XPages日志文件,请使用从浏览器轻松访问日志文件


如果使用“searchResult”作为
targetPage
的值(假设appPage被称为“searchResult”)是否有效?

我现在找到了一个解决方案,使用静态行项目而不是按钮,因为我无法使按钮工作。我认为这与单页应用程序处理移动页面访问的方式有关

搜索页面如下所示:

<xe:appPage id="appPage34" pageName="searchPage" preload="true" resetContent="true">
        <xe:djxmHeading id="djxmHeading34" label="Search..." back="Home" moveTo="home">
        </xe:djxmHeading>
        <xp:inputText id="searchInput" value="#{sessionScope.searchValue}">
            <xp:eventHandler event="onblur" submit="true" refreshMode="complete">
                <xp:this.action>
                    <xp:executeScript>
                        <xp:this.script><![CDATA[#{javascript:var svalue = getComponent("searchInput").getValue(); sessionScope.put("searchValue",svalue);}]]></xp:this.script>
                    </xp:executeScript>
                </xp:this.action>
            </xp:eventHandler>
        </xp:inputText>
        <xp:br></xp:br>
        <xp:br></xp:br>
        <xe:djxmLineItem id="djxmLineItem41" label="Start Search..." moveTo="#searchResult">
        </xe:djxmLineItem>
    </xe:appPage>

在显示搜索结果的移动页面中,我只需获取sessionScope变量的值,使用该值进行全文搜索,并在repeat控件中使用结果文档集合


我仍然更愿意使用按钮,因为静态行项目并不是用户期望作为gui元素启动搜索的真正内容。但至少这是可行的。

searchResult不能像targetPage那样工作。同样的错误。错误消息是“意外运行时错误”(可以这样认为,错误消息是德语)。错误中没有进一步的信息。我将检查日志文件。这是XPages日志中发生的情况:20.09.12 11:41:异常抛出上下文路径:/test/vvappmob.nsf页面名称:/mHome_1.xsp javax.faces.FacesException位于com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102)位于com.sun.faces.LifecycleImpl.phase(LifecycleImpl.java:210)com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:250)com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:223)或com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:200)com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:200)上位于com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)的com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)的com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)的com.ibm.domino.xsp.module.nsf.nsf.nsfcomonentmodule.invokeServlet(ComponentModule.java:103)com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:847at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1251)com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:598)com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:421)com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341)com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)上的com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)由java.util.regex.Matcher.getTextLength(Matcher.java:1151)上java.util.regex.Matcher.java:302上的java.lang.NullPointerException引起在java.util.regex.Matcher.(Matcher.java:222)在com.ibm.xsp.extlib.actions.MoveToAction.setParentPageID(MoveToAction.java:217)的java.util.regex.Pattern.Matcher(Pattern.java:899)在java.com.ibm.xsp.extlib.actions.MoveToAction.setParentPageID(MoveToAction.java:217)上,你不能只做context?我可以试一试,但正如我所理解的单个应用程序页/应用程序页的结构,您必须使用moveTo,因为您停留在同一个XPage上,只需切换到此XPage的某个部分。正如我所想:redirectToPage在这种情况下不起作用,因为我不想打开另一个XPage,而是停留在同一个XPage上并切换到ano应用程序页面(移动页面)。
<xe:appPage id="appPage34" pageName="searchPage" preload="true" resetContent="true">
        <xe:djxmHeading id="djxmHeading34" label="Search..." back="Home" moveTo="home">
        </xe:djxmHeading>
        <xp:inputText id="searchInput" value="#{sessionScope.searchValue}">
            <xp:eventHandler event="onblur" submit="true" refreshMode="complete">
                <xp:this.action>
                    <xp:executeScript>
                        <xp:this.script><![CDATA[#{javascript:var svalue = getComponent("searchInput").getValue(); sessionScope.put("searchValue",svalue);}]]></xp:this.script>
                    </xp:executeScript>
                </xp:this.action>
            </xp:eventHandler>
        </xp:inputText>
        <xp:br></xp:br>
        <xp:br></xp:br>
        <xe:djxmLineItem id="djxmLineItem41" label="Start Search..." moveTo="#searchResult">
        </xe:djxmLineItem>
    </xe:appPage>