Как обработать симпатичные лица 'query-param' в бэк-бине? - PullRequest
4 голосов
/ 31 января 2012

У меня есть список пользователей (dataTable со ссылкой на userId, которая указывает на /user/view/{userId}).При нажатии на эту ссылку userId браузер будет перенаправлен на страницу просмотра, как и ожидалось.

У меня есть страница, которая принимает шаблон URL http://localhost:8080/user/view/1 для первого пользователя и http://localhost:8080/user/view/2 для второго и т. Д., Но я не знаю, как использовать значение userId после загрузки этой страницы.

Как мне добиться этого с PrettyFaces URLRewriteFilter ?Как я могу загрузить данные, используя значение #{bean.userId} (1,2 и т. Д.) Из базового компонента, как только PrettyFaces внедрит их при доступе к странице.Кто-нибудь может объяснить?

<url-mapping id="view">
<pattern value="/user/view/#{bean.userId}/" />
<view-id value="/userview.jsf" />
</url-mapping>

Я использую JSF2 + Primefaces.3.0.M3 + Prettyfaces-jsf2.3.3.2 с GAE.

Ответы [ 2 ]

5 голосов
/ 31 января 2012

Вам необходимо действие загрузки страницы, указанное элементом <action> в конфигурации сопоставления URL-адресов.Во-первых, вам понадобится метод в вашем bean-компоненте, например:

@Named("bean")
@RequestScoped
public class LoginBean {

public String loadLoggedUser() {
    if ( userId != null ) {
        this.user = user.findById(userId);
        return null;
    }
    return "failure";
}
}

Во-вторых, вам нужно добавить <action> к вашему отображению URL:

<url-mapping id="view">
     <pattern value="/user/view/#{bean.userId}/" />
     <view-id value="/userview.jsf" />
     <action>#{bean.loadLoggedUser}</action>
</url-mapping>

Здесьмы определили действие страницы для bean-компонента, #{bean.loadLoggedUser}, когда запрашивается URL, соответствующий нашему шаблону.Например: /user/view/2.

0 голосов
/ 31 января 2012
<url-mapping id="login">
        <pattern> /user/view/1 </pattern>
        <view-id> /legacy/user/login.jsp </view-id> <!-- Non JSF View Id -->
    </url-mapping>
    <url-mapping id="register">
        <pattern>/user/view/1 </pattern>
        <view-id>/faces/user/register.jsf</view-id> <!-- JSF View Id -->
    </url-mapping>
<url-mapping id="login1">
        <pattern> /user/view/2 </pattern>
        <view-id> /legacy/user/login2.jsp </view-id> <!-- Non JSF View Id -->
    </url-mapping>
    <url-mapping id="register2">
        <pattern>/user/view/2 </pattern>
        <view-id>/faces/user/register2.jsf</view-id> <!-- JSF View Id -->
    </url-mapping>

см. http://ocpsoft.com/prettyfaces/

...