Java 如果需要,执行操作并请求签名

Java 如果需要,执行操作并请求签名,java,jsf,jsf-2,composite-component,Java,Jsf,Jsf 2,Composite Component,我正在尝试开发一个组件,其中需要用户签名才能完成某项操作,以下是顺序: 用户单击命令按钮或命令链接 弹出窗口打开,要求用户输入用户名/密码 如果用户输入正确的用户名/密码,则执行原始操作 如果用户输入错误的用户名/密码或单击“取消”按钮,则不会发生任何情况 最后,当动作真正执行时,签名信息应该是可用的 注:解决方案应为具有以下结构的复合组件: <myCC:confirm action="#{testMB.delete}" singatureType="deleteObject"/>

我正在尝试开发一个组件,其中需要用户签名才能完成某项操作,以下是顺序:

  • 用户单击命令按钮或命令链接
  • 弹出窗口打开,要求用户输入用户名/密码
  • 如果用户输入正确的用户名/密码,则执行原始操作
  • 如果用户输入错误的用户名/密码或单击“取消”按钮,则不会发生任何情况
  • 最后,当动作真正执行时,签名信息应该是可用的
  • 注:解决方案应为具有以下结构的复合组件:

    <myCC:confirm action="#{testMB.delete}" singatureType="deleteObject"/>
    
    
    
    我为实现此行为所做的是:

  • 创建了一个视图范围的托管bean SignatureMB来处理带有属性(用户名、密码和signatureType)的签名

  • 创建了一个请求范围的托管bean#{testMB},其托管属性映射到#{signatureMB}

  • 在我的复合组件myCC:confirm中,我创建了两个链接一个outputLink将打开带有签名表单的弹出窗口,第二个是隐藏的commandLink,它将包含要提交的实际操作,即{testMB.delete}

  • 签名表单已发布,如果用户名/密码正确,弹出窗口将自动关闭并触发隐藏commandLink的单击事件

  • 最后,在#{testMB.delete}中,我将拥有签名信息,并能够处理该信息,完成后,我将重置签名emb中的值


  • 您如何看待这个实现?你认为有更好的方法吗

    这是一个合理的实现,也是一个良好的起点


    您需要添加步骤4a来处理不正确的用户名/密码逻辑

    隐藏链接部分是“松散链接:-”)。成功验证后,您可以自动调用delete,用户是否真的需要再次单击以删除?链接也可以动态呈现?

    自动调用删除是什么意思?现在,我是通过触发隐藏的commandLink的onclick事件来实现的。我没有提到用户必须再次单击删除!最后,应该动态呈现什么链接?你能说得更清楚一点吗?我的疏忽是假设“用户必须再次调用delete”,我收回这一点。这也是建议“删除链接”必须动态呈现的原因。我希望delete函数可以从服务器端调用,而不是从客户端调用。它是一个复合组件,将在整个项目中重用,在我的示例中,它是一个delete操作,但也可以是其他任何操作。