当前位置: 首页 > 知识库问答 >
问题:

从具有基本面的菜单项调用托管bean的特定方法

齐望
2023-03-14

我有一个带有Primefaces的JSF2页面构建。在这个页面中,我有一个包含以下代码的菜单栏,有3个菜单项:文件-

<p:menubar styleClass="ui-menuitem-link">
  <p:submenu label="File" icon="ui-icon-document">
    <p:menuitem value="Create" icon="ui-icon-contact" url="fileCreate.jsf" />
    <p:menuitem value="Open" url="fileOpen.jsf"  />
    <p:menuitem value="Quit" url="#" />
  </p:submenu>
</p:menubar>

我有一个关于退出菜单项的问题。在这里我当用户想要注销他用来点击退出菜单项。出于登录-注销目的,我有单独的会话范围UserServiceBean托管bean,其中包含方法

public String login();
public String logout();
public boolean isUserLoggedIn();
public String register();

所以我卡住了我应该在menuItem中提供什么url,这样我就可以直接调用UserServiceBean.logout()方法,登录的用户将通过这个服务bean注销。我尝试为p: menuItem提供action和actionListener属性,但没有帮助。

共有1个答案

邓俊材
2023-03-14

像这样试试。

<p:menuitem id="id"
value="Your Menu Text"
icon="fa fa-user"
actionListener="#{yourManagedBean.youtMethod}"/>
 类似资料:
  • 我有一些cdibean。以前,它们都是JSF管理的bean(从JSF管理的bean更改为CDI管理的bean)。 我像下面这样做是为了删除用户成功下在线订单后管理的一些会话范围的JSF。 以便在订单处理完成后将所有内容设置为默认值。这与在订单处理成功终止后不能注销用户的整个HTTP会话的销毁/无效无关。 与JSF托管bean不同,CDIBean通过一些CDI管理器实现(如Weld)存储到服务器内存

  • 我想从方法中检索注释(自定义编写的注释)。通常我可以通过访问 但是如果bean由CDI容器管理(我使用的是OpenWebBeans),那么类在运行时会得到增强。然后我必须使用超类来请求注释。目前,我试图通过在类名中查找“$$”来检测是否管理该类。但对我来说,这似乎是一个非常肮脏的解决方案。 有什么好方法可以从CDI管理的bean中检索注释吗? 详细地说,我的代码是这样的:我创建了一个注释“Cool

  • 我在Confluence上运行的HTML/CSS主题上实现了以下菜单。 默认情况下,我正在运行的主题提供了激活所有菜单项的下拉菜单的选项。但是,我希望只为其中一个菜单项显示下拉菜单。 该主题没有提供切换特定菜单项下拉列表的选项,这就是为什么我不得不求助于自定义CSS。 与发行说明菜单项对应的HTML如下-- 此外,添加以下自定义CSS将删除所有菜单项的下拉菜单。 我希望CSS有条件地不显示RELE

  • 问题内容: 我是JSF的新手(2)。 在Struts中,我们可以从类似的URL调用动作。这将调用一个操作并返回一个结果页面,例如JSP(最初没有JSP / HTML)。 在JSF中如何做同样的事情?(我知道如何从.xhtml调用操作),即直接从URL调用托管bean并获取结果页面。 问题答案: 您要询问的模式并不是JSF工作方式的真正本机。 像Struts和Spring MVC这样的基于请求的框架

  • 我在spring项目中使用基于注释的配置。我使用@Autowired注入类,这些类用适当的注释进行注释,比如@Service、@Component、@Repository、@Controller。我这里有两个问题: 不知怎的,我是否能得到一个spring BeanFactory的实例