پاسخ داده شد
در jsf زمانیکه یک لینک یا دکمه را کلیک می کنیم چگونه مشخص می کنیم که کدام صفحه نمایش داده شود؟
- فرشته حقیقی 3 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
پاسخ عالی
برای اینکار 3 روش وجود دارد:
- در صفحه jsf
<h:form>
<h3>Using JSF navigation</h3>
<h:commandButton action="home" value="home" />
</h:form>
در اینجا زمانیکه دکمه home کلیک شود به صفحه home.xhtml فوروارد می شود..
2. با استفاده از Managed Bean :
ManagedBean(name = "navigationController", eager = true)
@RequestScoped
public class NavigationController implements Serializable {
public String moveToHome()
{ return "home"; }
}
و در قسمت UI قرار می دهیم:
<h:form>
<h3>Using Managed Bean</h3>
<h:commandButton action="#{navigationController.moveToHome}" value="home" />
</h:form>
3. با استفاده از فایل faces-config.xml
<navigation-rule>
<from-view-id>home.xhtml</from-view-id>
<navigation-case>
<from-action>#{navigationController.goToPage1}</from-action>
<from-outcome>page</from-outcome>
<to-view-id>page1.jsf</to-view-id>
</navigation-case>
</navigation-rule>
و در managed bean متد زیر را قرار می دهیم:
public String goToPage1(){
return "page";
}
4. با استفاده از قرار دادن id برای page ها
<h:form>
<h:commandLink action="#{navigationController.showPage}" value="page1">
<f:param name="pageId" value="1" />
</h:commandLink>
</h:form>
و در bean متد زیر را قرار می دهیم
ManagedBean(name = "navigationController", eager = true)
@RequestScoped
public class NavigationController implements Serializable
{ //this managed property will read value from request parameter pageId
@ManagedProperty(value="#{param.pageId}")
private String pageId;
public String showPage()
{
if(pageId == null){
return "home";
}
if(pageId.equals("1")){
return "page1";
}
}
}
- فرشته حقیقی 3 سال قبل پاسخ داد
- شما باید برای ارسال دیدگاه وارد شوید
پاسخ شما