Tag: jsf

如何在与按钮相同的数据表行中获取输入组件的值?

我有一个数据表,其中行是动态的,每行包含一个selectOneMenu 。 如果我在每一行都有一个按钮,并且我想在selectOneMenu上获取所选项目,那么最好的方法是什么?

通过postValidate进行JSF交叉字段validation,而无需在支持bean中按名称查找组件

我正在构建一个登录表单复合组件。 使用它的页面将传递一个将validation用户名和密码的事件处理程序。 通常(不使用复合组件)当我们通过postValidate执行交叉字段validation时,事件处理程序必须按名称查找字段的组件。 validation器最好不要这样做,因为这些是应该抽象的组件的内部细节。 知道如何在不了解复合组件的内部细节的情况下在postValidate处理程序中获取用户名和密码字段的转换值吗? 更新:这一点不是为了避免按名称查找组件,而是能够以不需要使用页面和/或bean来了解内部的方式跨域validation复合组件的字段组件的详细信息。

将init参数传递给Manage bean

我有一个授权托管bean来获取应用于应用程序的每个jsf中的标记的限制规则。 托管bean需要在启动时知道所请求的jsf的名称,以便它可以获取特定于该jsf内的标记的限制。 这可以实现的最佳方式是什么?

从HttpSessionListener获取SessionScoped bean?

大家好。 我正在尝试在HttpSessionListener中获取会话bean,以便当用户注销或会话到期时,我可以删除用户在应用程序中创建的一些文件。 我猜测会话bean不存在,因为会话被销毁了。 我希望仍然删除这些文件的一些方法。 谢谢您的帮助。 @WebListener public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent se) { HttpSession session = se.getSession(); System.out.print(getTime() + ” (session) Created:”); System.out.println(“ID=” + session.getId() + ” MaxInactiveInterval=” + session.getMaxInactiveInterval()); } @Override public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); FacesContext context = FacesContext.getCurrentInstance(); //UserSessionBean userSessionBean = (UserSessionBean) context.getApplication().evaluateExpressionGet(context, […]

JSF两个需要h:inputText(独占或)

我想要2个imputText是必需的:如果重视电子邮件,则不需要手机,反之亦然。 我能怎么做? 谢谢。

JSF标记未呈现

我正在启动一个JSF项目(这是我第一次使用JSF)而且我在渲染标记方面遇到了问题。 我正在Eclipse中开发并使用TomCat作为服务器。 我的login.jsp文件: https : //gist.github.com/code-curve/e7e557262d407dddd1f3 我的web.xml文件: https : //gist.github.com/code-curve/52902b7605b780dea93f Eclipse项目结构: http : //snag.gy/P8Sts.jpg 服务器启动日志: https : //gist.github.com/code-curve/d1927a636052607ce16a 我正在使用此URL访问该文件: http://localhost:8080/DeutschAkademie/login.jsp ,据我所知, 标记应呈现为 ,而是呈现为 。 有任何想法吗?

多个枚举的国际化(枚举值的翻译)

再次讨论过之前我想要分享“我的”解决方案的内容,并要求增强,其他方法或最佳实践。 我有几个枚举,我需要国际化(我需要将枚举值翻译成某些语言,以便在jsf页面中显示它们)。 考试枚举: public enum TransferStatus { NOT_TRANSFERRED, TRANSFERRED } 翻译将是例如Not yet transferred / Transferred, all good 转换应存储在MessageBundle(属性文件)中。 我正在寻找一个简单,通用的解决方案(最好不需要在所有枚举中编写额外的代码),这在jsf方面并不需要太多。 只是要提一下,当然有可能两个不同的枚举产生相同的枚举值(例如,在不同的枚举中具有不同含义的COMPLETED值)。 我提出的解决方案: (1)将翻译存储在属性文件中,如下所示: TransferStatus.NOT_TRANSFERRED = Not yet transferred TransferStatus.TRANSFERRED = Transferred, all good (2)创建一个带有枚举的helper类并生成查找键: public class EnumTranslator { public static String getMessageKey(Enum e) { return e.getClass().getSimpleName() + ‘.’ + e.name(); } } (3)将此代码添加到每个枚举: public String getKey() […]

在JSF中,防止表单篡改的最佳方法是什么?

我们正在使用JSF 1.x打开服务器端状态保存。 我们遇到一个问题,即作为web-bot实施的恶意用户可以提交页面,而不提交预期在表单中的所有字段。 这导致一些未被调用的validation器应被调用,等等。 我们希望阻止用户在表单中添加/删除字段并提交表单(如果他们想要提交表单,那么所有预期字段都在那里)。 在过去,我使用页面上字段ID的MD5哈希加上在页面上保存为隐藏字段的未知短语和会话filter,根据提交的字段ID生成预期哈希并将其与隐藏字段中的值。 有没有什么我可以用JSF开箱即用,以防止用户操纵表单? 或者使用第三方库?

如何使用Ajax调用jsf操作方法(在JSF 1.2中)?

我在Apache My faces中编写了一个JSF 1.2应用程序。 我不能使用任何自定义组件库 – 如tomahawk或a4j等。 有没有办法使用Ajax调用JSF的动作方法? 当JSF操作完成后,我想通过Javascript处理JSF操作的响应并在客户端填充DIV标记? 可能吗? 谢谢。

使用MyFaces Tomahawk + ​​JSF 2.0上传文件

我目前正在使用Tomahawk MyFaces将文件上传到我的服务器。 我一步一步地遵循一些指示,一切似乎都没问题,但我没有把文件保存到数据库中。我没有看到任何错误,我只是在我的eclipse控制台中看到一些警告。 有人可以看看吗? 这就是我做的: 1-Downloaded Tomahawk for JSF 2.0并将所有.jars添加到我的WEB-INF / lib文件夹中 2 – 我检查了我的web.xml是否正确配置为使用Faces Servlet。 而且我还为战斧扩展添加了一个filter。它是这样的: Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /pages/* pages/index.jsp MyFacesExtensionsFilter org.apache.myfaces.webapp.filter.ExtensionsFilter MyFacesExtensionsFilter Faces Servlet 3 – 我还检查了我的faces-config.xml是否正确: 4-I为上传小工具创建了一个非常简单的复合页面 5 – 我有一个托管bean来与页面通信并获取输入文件: @ManagedBean @RequestScoped public class UploadController { @EJB private IFileUploaderEJB fileUploaderEJB; private UploadedFile uploadedFile; public void submit() throws IOException […]