【发布时间】:2011-10-12 12:13:49
【问题描述】:
我正在尝试开发一个组件,其中需要用户签名才能完成某个操作,这里的顺序是:
- 用户单击命令按钮或命令链接。
- 会打开一个弹出窗口,要求用户输入用户名/密码
- 如果用户输入正确的用户名/密码,则执行原始操作。
- 如果用户输入错误的用户名/密码或单击取消按钮,则不会发生任何事情。
- 最后,当动作真正执行时,签名信息应该是可用的。
注意:解决方案应该是一个复合组件,应该具有以下结构:
<myCC:confirm action="#{testMB.delete}" singatureType="deleteObject"/>
我为实现此行为所做的是:
创建了一个视图范围的托管 beanSignatureMB 来处理带有属性(用户名、密码和签名类型)的签名
创建了一个请求范围的托管 bean #{testMB},其托管属性映射到 #{signatureMB}
在我的复合组件 myCC:confirm 我创建了两个链接,一个 outputLink 将打开带有签名表单的弹出窗口,第二个是隐藏的 commandLink,它将包含要提交的实际操作即 #{testMB.delete}
签名表单已发布,如果用户名/密码正确,弹出窗口将自行关闭并触发隐藏 commandLink 的点击事件。
最后在 #{testMB.delete} 我将获得签名信息,并能够处理信息,完成后我将重置 signatureMB 中的值。
您如何看待这个实现?你认为有更好的方法吗?
【问题讨论】:
标签: java jsf jsf-2 composite-component