jsf 后台参数到页面_JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能...

jsf 后台参数到页面

其中一个JSF 2+不错的特点出现在Java企业版的JavaEE 6 +,是你可以传递参数给喜欢的commandButtoncommandLink组件的任何动作元件操作方法。


基于此,您可以最小化托管bean中的方法数量。

另外,为了最小化在bean内部设置的许多参数,动作可以使用这些参数来决定导航逻辑,如果您的bean的作用域大于请求作用域,则可以减少内存消耗。

这个怎么运作:

  1. 打开您最喜欢的IDE,我将使用Netbeans 7.4.1 。 (使用任何支持JavaEE 6或7的IDE)。
  2. 创建Web项目。
    文件–>新建项目–> Java Web(左窗格) –> Web应用程序(右窗格) –>下一步。
  3. 随便命名(对我来说就是JSFeatures–>下一步–>服务器Glassfish4 –> Java EE 7 Web配置文件–>上下文路径“ / JSFeatures” –>下一步。

    JSF-FEAT-01

  4. 从框架中选择“ Java Server Faces-> Finish。

    JSF-FEAT-02

  5. 您应该具有以下项目结构:

    JSF-FEAT-03

  6. 右键单击JSFeatures项目->新的“ JSF Managed Bean ”。 及其名称和配置如下:

    JSF-FEAT-04

  7. 在编辑器页面中打开bean的情况下,将以下代码复制并粘贴到package语句之后:
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
     
    /**
     * @author mohamed_taman
     */
    @ManagedBean(name = "jSFeatBean")
    @RequestScoped
    public class JSFeatursBean {
     
        private String result;
     
        public String getResult() {
            return result;
        }
     
        public void setResult(String result) {
            this.result = result;
        }
     
        public JSFeatursBean() {
        }
     
        public Object addNumbers(int num1,int num2) {
                setResult("Hi there I am an action method to add numbers.");
            return null;
        }
    }
  8. 打开默认生成的index.xhtml ,然后复制以下代码并将其粘贴到文件中:
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://xmlns.jcp.org/jsf/html">
        <h:head>
            <title>Facelet Title</title>
        </h:head>
        <h:body>
            Hello from Facelets
            <h:form>
                <p>
                    <h:outputText value="#{jSFeatBean.result}"/>
                </p>
    <h:commandButton type="submit"
                     value="Submit"
                     action="#{jSFeatBean.addNumbers}"/>
            </h:form>
        </h:body>
    </html>
  9. 右键单击index.xhtml,然后单击–> 运行 ; 您应该会看到以下内容:

    JSF-FEAT-05

  10. 单击提交按钮,观察h:outputText值,其值应为“ Hi,我是一个操作方法。
  11. 现在一切正常。 让我们做我需要演示的实际工作。
  12. addNumbers()方法签名更改为以下内容( 无需重新启动应用程序服务器 ):
    1. Bean方法:
      public Object addNumbers(int num1) {
            int res = 0;
            res = num1;
            if (res == 0) {
                setResult("Hi there I am an action method to add numbers.");
            } else {
                setResult("Final result is: " + res);
            }
            return null;
        }
    2. 然后,您的按钮呼叫到:
      <h:commandButton type="submit"
                       value="Submit" 
                       action="#{jSFeatBean.addNumbers(1)}"/>
    3. 按下按钮,输出文本值应为:
      Final result is: 1
  13. 再做一次:
    1. Bean方法:
      public Object addNumbers(int num1, int num2) {
            int res = 0;
            res = num1 + num2;
            if (res == 0) {
                setResult("Hi there I am an action method to add numbers.");
            } else {
                setResult("Final result is: " + res);
            }
            return null;
        }
    2. 然后,您的按钮呼叫到:
      <h:commandButton type="submit"
                       value="Submit" 
                       action="#{jSFeatBean.addNumbers(1,2)}"/>
    3. 按下按钮,输出文本值应为:
      Final result is: 3

注意:该参数可能具有不同的参数类型,但预计不会是同一类型,该方法也可能返回用于导航到其他页面的值,在此示例中,该参数返回null表示在同一页面上。

我非常喜欢此功能,非常有用,方便,编码愉快。

资源:


翻译自: https://www.javacodegeeks.com/2014/01/jsf-passing-parameters-to-jsf-action-methods-from-page-directly-a-nice-feature-of-javaee-6.html

jsf 后台参数到页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值