小编use*_*895的帖子

如何在preRenderView侦听器方法中执行导航

我从什么可以<f:metadata>,<f:viewParam>和<f:viewAction>开始?

我有一个预呈现视图事件监听器:

<f:metadata>
    <f:event type="preRenderView" listener="#{loginBean.performWeakLogin()}" />
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

它调用以下方法:

public String performWeakLogin() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String parameter_value = (String) facesContext.getExternalContext().getRequestParameterMap().get("txtName");

    if (parameter_value != null && parameter_value.equalsIgnoreCase("pippo")) {
        try {
            return "mainPortal";
        } catch (IOException ex) {
            return null;
        }
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

和以下导航规则:

<navigation-rule>
    <from-view-id>/stdPortal/index.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>mainPortal</from-outcome>
        <to-view-id>/stdPortal/stdPages/mainPortal.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>
Run Code Online (Sandbox Code Playgroud)

但是,它不执行导航.它使用命令按钮时,如下所示:

<p:commandButton ... action="#{loginBean.performWeakLogin()}"  /> 
Run Code Online (Sandbox Code Playgroud)

navigation listener jsf-2 prerenderview

6
推荐指数
1
解决办法
1万
查看次数

使用h:按钮时,除去URL中的jsessionid = xxx路径参数

我在Tomcat7和JSF 2.1中使用OmniFaces FullAjaxExceptionHandler来处理ViewExpiredException.我设置了与OmniFaces展示相同的错误页面.在这里查看错误页面,这里是模板.

它工作正常.当会话过期时,我最终会出现expired.xhtml错误页面.但是,当我单击错误页面中的以下链接时,

 <p><a href="#{requestScope['javax.servlet.error.request_uri']}">Back to initial page.</a></p>
Run Code Online (Sandbox Code Playgroud)

然后我得到以下异常:

com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean 
Run Code Online (Sandbox Code Playgroud)

这不是一个大问题.无论如何,我需要一个将用户指向主页的按钮.所以我用下面的按钮替换它:

<h:button value="Home" outcome="logout" />
Run Code Online (Sandbox Code Playgroud)

以及此导航案例:

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>logout</from-outcome>
        <to-view-id>/stdPortal/index.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>
Run Code Online (Sandbox Code Playgroud)

导航将我带到了正确的页面,但会话ID显示在URL中:

https://localhost/stdPortal/index.xhtml;jsessionid=B68784B4ED8882A6575A2EE4012AF1B5
Run Code Online (Sandbox Code Playgroud)

我不想要这个.我怎么摆脱它?我希望网址如下:

https://localhost/stdPortal/index.xhtml
Run Code Online (Sandbox Code Playgroud)

jsessionid jsf-2 omnifaces

4
推荐指数
1
解决办法
3621
查看次数

Unindent或线性化XML

我正在寻找一种在JAVA中线性化XML的快速方法

我正在使用~2GB文件,因此排除了DOM.Java targhet是1.5.0.22我必须从xml生成一个由80bytes + newline组成的文件.我必须在一个将由Cobol程序读取的DB2表中编写它.

在Cobol中,重要的是大小,因为数据从表中读取为CHAR,这意味着空行为80个空格.

我读取文件字节到字节(我必须)但我可以使用内部临时缓冲来存储可能的序列以忽略

例5字节af ascii文件

<a><b><c>psofpisogiosigpsfiogpo</c></b></a>

<a><b
><c>p
sofpi
sogio
sigps
fiogp
o</c>
</b><
/a>
Run Code Online (Sandbox Code Playgroud)

问题与文件

<a>
    <b>
       <c>psofpisogiosigpsfiogpo</c>
    </b>
</a>







<a>

  <b
>


<c>ps
ofpis
ogios
igpsf
iogpo
</c>

    <
/b>

   </
a>
Run Code Online (Sandbox Code Playgroud)

非线性化XML在表中创建空行或某些行未充分发挥其潜力.

这成为了一个丢失的付费cpu循环unde HOST CICS环境

如果我可以线性化文件,我会得到相同的输出,如果文件是缩进的,XML保持相同的信息

任何的想法?

java xml text-processing

0
推荐指数
1
解决办法
4342
查看次数

VIM列操作

介绍

在Windows下的gVim中,我必须在每个文件串中替换insert和mod某些特定位置的字符.

QWAER;PA 0X000055;123WAAAA
TYUIO;PA 0Y000056;123VAAAA
Run Code Online (Sandbox Code Playgroud)

需要成为

QWAE@;PAX000055;123;WAAAA
TYUI@;PAY000056;123;VAAAA
Run Code Online (Sandbox Code Playgroud)

在@ delete char 9,10 insert中修改char 5; 在原始的pos 22或删除在pos 20之后

更多信息

通常我这样做

放置光标和文本的开头选择按CTRL-V(在gVim中按CTRL-Q)开始选择列保持按SHIFT并选择感兴趣的区域在文件的末尾,然后执行替换插入或修改.(这是我在GVim Win32中了解仅限键盘列块选择的地方,或者为什么在包含mswin.vim时Ctrl-Q不能模拟Ctrl-V? 在这里我学习如何进行插入(http:// pivotallabs .com/column-edit-mode-in-vi /)

这不是一个正确的做事方式.

在vim中,我可以使用命令替换扇形行等.

我认为应该可以使用命令来替换每个字符串的一部分,但我没有关于这些命令的Knoledge.

这是主要的想法

用特定字符串替换vi文本文件中的备用行

有没有办法使用具有绝对位置而不是选择的命令来执行操作.

谢谢

vim

0
推荐指数
1
解决办法
481
查看次数