1、在CommandButtion的action掉用的方法里先弹出alert('XX')在转向。
2、在值改变事件里怎么做页面跳转?(最好用配置文件里的导航规则)
3、怎么掉用页面的javascript函数?

解决方案 »

  1.   

    简单呀,直接在CommandButtion加onclick事件调用就可以了,如果有多个方法,用逗号隔开就可以了,我也是做JSF开发的,一起交流,MSN:[email protected]
      

  2.   

    我们公司接着的项目就要用JSF现在研究中。我加你了。
      

  3.   

    我的意思是在action后面绑定的javabean的方法里往页面上写alert
      

  4.   

    1、现阶段jsf不支持从javabean中直接调用javascript
    2、commandbutton中有一个onclick属性,在其后添上对应的javascript代码即可。
    如:<h:commandbutton type="button" onclick="alert("javascript")"/>
      

  5.   

    <h:commandButton  id="dataExport" value="データ抽出"  action="#{SearchCtrl.doPersonExportButton}"/>
    <h:inputHidden id="fileOutputFlag" value="#{QueryForm.fileOutputFlag}"/>
    <script language="JavaScript">
      if(document.forms[0].elements["formname:fileOutputFlag"].value == "true"){
    alert("your javascript info");
      document.forms[0].elements["formname:fileOutputFlag"].value = "false";
    }
    </script>
    在页面输出一个JSF变量,放入inputHidden ,设置初值,然后在你的commandButton的ACTION里,改变这个JSF变量的值,在javascript中根据变量的值判断是否alert();
      

  6.   

    我个人人为在你没有熟悉新的技术之前,在你没有找到问题的解决方法之前,不要动不动说JSF不成熟,不支持之类的话,人是活的,可以从另外一个角度想办法呀,
      

  7.   

    在action后面绑定的javabean中这样写:
    StringBuffer buf = new StringBuffer();
    buf.append("<SCRIPT language=javascript>");
    buf.append("alert(\"这是弹出的对话框\");");
    buf.append("</script>");
    pageContext.getOut().println(buf.toString());
    当然,你的导入import javax.servlet.jsp.PageContext;和import javax.servlet.http.HttpServletRequest;
      

  8.   

    在action后面绑定的javabean里导入了import javax.servlet.jsp.PageContext;
    但是pageContext没有getOut()方法啊 为什么?chuan122345() 这个我以前就知道可以的。我想知道有没有更直接的办法。
      

  9.   

    pageContext怎么会没有getOut()方法呢?在J2eeAPI有明确的说明:
    getOut
    public abstract JspWriter getOut()The current value of the out object (a JspWriter).
    Returns:
    the current JspWriter stream being used for client response
      

  10.   

    action不变
    只要在<h:form>里加上一个onsubmit属性即可:
    <h:form onsubmit="调用js">
      

  11.   

    老大在action里直接用pageContext.getOut()真的没有啊。
    是不是得用什么东西事例化一下啊。
    要不他怎么知道是哪个页面的pageContext?
      

  12.   

    thomas_20(执子之手,与子偕老) 我的意思是不是所有数据提交过去都有alert窗口
      

  13.   

    那你可以先设一个全局JS变量a,在你的每个CommandButtion里加上onclick事件,分别调用同一JS方法来改变这个全局变量a。然后在onsubmit里调用的JS方法先判断a,再决定是否要alert
      

  14.   

    to楼主:
    前面我所说的方法当然并不是全部的代码,当然有一部分需要你自己去实现一下,既然你不太明白,我就说明白一点吧:
    你要在javabean中写script,你就要在你的javabean中写一个构造方法,这个构造方法要初始化pageContext,举个例子,你的javabean叫mybean,它的内容大致是这样的:
    import javax.servlet.jsp.PageContext;
    import javax.servlet.http.HttpServletRequest;
    public class mybean{
    PageContext pageContext = null;
    public mybean(PageContext pageContext){
    this.pageContext = pageContext;
    }
    public void myscript(){
    StringBuffer buf = new StringBuffer();
    buf.append("<SCRIPT language=javascript>");
    buf.append("alert(\"这是弹出的对话框\");");
    buf.append("</script>");
    pageContext.getOut().println(buf.toString());
    }
    }
    写完这些,你只需要在你的jsp中传pageContext给mybean就可以了,jsp中的代码:
    mybean mybeans = new mybean(pageContext);
    mybeans.myscript();
      

  15.   

    你的意思我懂了 但是
    用jsf怎么把pagecontext给action?
    jsf初始后台action是自动的。
      

  16.   

    你可以用CommandButtion的action去调用一个jsp,这个jsp里面没有别的东西,只有
    mybean mybeans = new mybean(pageContext);
    mybeans.myscript();
    这样的代码,明白吗?
      

  17.   

    我都有点不好意思在问了!
    但是在action里调用一个jsp页面new mybean的话有两个问题?
    我的页面还有其他组件帮定的action里的属性
    1、new的是action的bean那你new的bean和JSF自动事例化的bean不是一个句炳吧,数据取不到吧。
    2、new的是其他bean那同样action里的一些数据区不到吧。
    3、在新页面传过去的pageContext跟原来页面的pageContext一样吗?
      

  18.   

    是不是想在点提交按钮后,弹出相应的成功与否的对话框?
    如果是这样的话,可以参考以下解决方案。
    <h:outputText escape="false" value="#{TestBean.script}" />
    在banking bean 里 添加属性 String script;
    在action里面将script付值。如script="<script>alert('通过了')</script>";
      

  19.   

    還沒解決嗎﹖給你些代碼吧JS代碼如下﹕
    var flag="none";function changeFlag(parm){
        flag=parm;
    }
    function isAlert() {
        if(flag=="alert"){
    flag="none";
    return confirm("pass");
        }
        return true;
    }JSF中FORM設置﹕
     <h:form onsubmit="return isAlert();"/>需要彈對話框的button設置如下﹕
    <h:commandButton value="alert" action="#{SearchCtrl.doPersonExportButton}" onclick="javascript:changeFlag('alert');"/>