【问题标题】:Can I not submit a form to a servlet from JSF?我不能从 JSF 向 servlet 提交表单吗?
【发布时间】:2010-05-26 21:05:37
【问题描述】:
*  Unable to find matching navigation case with from-view-id '/home.xhtml' for action 'MemoServlet' with outcome 'MemoServlet' 

我尝试通过以下方式完成它:

<h:commandButton type="submit" value="add" action="MemoServlet"/>

但是世界上所有的教程都只用一个 bean 来做,我不想要。我遇到过任何可以满足我要求的导航规则。

【问题讨论】:

    标签: forms jsf servlets jsf-2


    【解决方案1】:

    为什么是 servlet?功能需求究竟是什么? servlet 是否包含“太多”代码,您可以将其重构为单独的类并在原始 servlet 和 JSF bean 操作方法中导入/调用它?

    无论如何,要解决特定问题,您需要一个普通的 HTML &lt;form&gt; 元素,其 action 指向 servlet URL,或者在 bean 的操作方法内对 servlet URL 调用 ExternalContext#dispatch()

    【讨论】:

    • 为什么是豆子?!我认为 mvc 希望页面与 servlet 交互,而 servlet 又调用你想要的分解代码。
    • JSF 是一个以 FacesServlet 作为唯一控制器的 MVC 框架,因此您基本上以 bean 作为模型和 JSP/Facelets 页面作为视图结束。为什么要添加另一个 servlet?听起来像是一个紧耦合代码的 servlet。您应该有一个业务/域对象来执行业务任务,而该业务任务又可以从 JSF bean 或“plain vanilla”servlet 调用。
    • 但是调用 'userManager.validate' 不是已经是业务逻辑了吗?
    • 那么它在 servlet 中做了什么? servlet 用于控制、预处理和后处理 HTTP 请求,而不是执行业务逻辑。只需在您的 bean 操作中调用 userManager.validate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 2014-06-06
    • 2013-04-17
    相关资源
    最近更新 更多