JSF 2使用js函数设置值

时间:2016-11-28 09:34:30

标签: javascript jsf jsf-2

我理解如何更改给定jsf标记的值(例如按钮标签),具体取决于支持bean值。虽然我在想是否有可能根据js函数的返回值设置值。

我会想象像onclick这样的东西:

  

value =" calljsfunction()"

其中返回值是按钮的值,虽然我找不到任何语法,但是可行。

这样的事情存在吗?

2 个答案:

答案 0 :(得分:0)

将Backing bean变量中的按钮值绑定,并在事件preRenderView上初始化变量buttonName

<ui:define name="metadata">
    <f:metadata>
        <f:event type="preRenderView"
            listener="#{myBean.initBean()}" />
    </f:metadata>
</ui:define>
<h:commandButton value="#{myBean.buttonName}" action="#{myBean.execute()}" /> 



 @ManagedBean
 @RequestScoped
 public class MyBean {
     private String buttonName;
     public String getButtonName() {
         return buttonName;
     }
     public void setButtonName(String buttonName) {
         this.buttonName= buttonName;
     }
  public void initBean(){
      setButtonName("Submit");
  }
 }

答案 1 :(得分:0)

要通过JavaScript设置按钮的值,您可以使用onload事件并设置按钮值 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html">

<h:head>
    <title>JSF 2</title>
    <script>
        window.onload = function() {
            // write your logic for finding value of the button
            document.getElementById("myForm:button").value = "Submit";
            // or 
            // document.getElementById("myForm:button").value = getValue();
            // function getValue() { return "submit"; } 

        }
    </script>
</h:head>
<h:body>
    <h2>JSF 2</h2>
    <h:form id="myForm">Type your name here :
           <h:inputText value="#{helloWorld.name}"></h:inputText>
        <br />
        <br />
        <h:commandButton id="button" style="margin-left:120px;" value=""
            action="welcome"></h:commandButton>
    </h:form>
</h:body>

</html>

您也可以将JavaScript代码放在单独的.js文件中