JSF里怎么弹出alert? 1、在CommandButtion的action掉用的方法里先弹出alert('XX')在转向。2、在值改变事件里怎么做页面跳转?(最好用配置文件里的导航规则)3、怎么掉用页面的javascript函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单呀,直接在CommandButtion加onclick事件调用就可以了,如果有多个方法,用逗号隔开就可以了,我也是做JSF开发的,一起交流,MSN:[email protected] 我们公司接着的项目就要用JSF现在研究中。我加你了。 我的意思是在action后面绑定的javabean的方法里往页面上写alert 1、现阶段jsf不支持从javabean中直接调用javascript2、commandbutton中有一个onclick属性,在其后添上对应的javascript代码即可。如:<h:commandbutton type="button" onclick="alert("javascript")"/> <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(); 我个人人为在你没有熟悉新的技术之前,在你没有找到问题的解决方法之前,不要动不动说JSF不成熟,不支持之类的话,人是活的,可以从另外一个角度想办法呀, 在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; 在action后面绑定的javabean里导入了import javax.servlet.jsp.PageContext;但是pageContext没有getOut()方法啊 为什么?chuan122345() 这个我以前就知道可以的。我想知道有没有更直接的办法。 pageContext怎么会没有getOut()方法呢?在J2eeAPI有明确的说明:getOutpublic abstract JspWriter getOut()The current value of the out object (a JspWriter).Returns:the current JspWriter stream being used for client response action不变只要在<h:form>里加上一个onsubmit属性即可:<h:form onsubmit="调用js"> 老大在action里直接用pageContext.getOut()真的没有啊。是不是得用什么东西事例化一下啊。要不他怎么知道是哪个页面的pageContext? thomas_20(执子之手,与子偕老) 我的意思是不是所有数据提交过去都有alert窗口 那你可以先设一个全局JS变量a,在你的每个CommandButtion里加上onclick事件,分别调用同一JS方法来改变这个全局变量a。然后在onsubmit里调用的JS方法先判断a,再决定是否要alert 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(); 你的意思我懂了 但是用jsf怎么把pagecontext给action?jsf初始后台action是自动的。 你可以用CommandButtion的action去调用一个jsp,这个jsp里面没有别的东西,只有mybean mybeans = new mybean(pageContext);mybeans.myscript();这样的代码,明白吗? 我都有点不好意思在问了!但是在action里调用一个jsp页面new mybean的话有两个问题?我的页面还有其他组件帮定的action里的属性1、new的是action的bean那你new的bean和JSF自动事例化的bean不是一个句炳吧,数据取不到吧。2、new的是其他bean那同样action里的一些数据区不到吧。3、在新页面传过去的pageContext跟原来页面的pageContext一样吗? 是不是想在点提交按钮后,弹出相应的成功与否的对话框?如果是这样的话,可以参考以下解决方案。<h:outputText escape="false" value="#{TestBean.script}" />在banking bean 里 添加属性 String script;在action里面将script付值。如script="<script>alert('通过了')</script>"; 還沒解決嗎﹖給你些代碼吧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');"/> Socekt getInputStream read()方法返回-1的问题 hibernate报错,求高人解决! 关于glassfish 基于J2EE的实名制信息系统 关于web发布问题 急求JFreeChat的jar包~~~~~~~~~ tomcat里怎么设置域名?有iis的,分不够再加 如何设置context? 中文插入SQL Server 2K数据库的问题。 请问再jsp中如何调用存储过程 雪地里裸体跪求 DBRichTool 工具的注册码? resin启动出错:In-place class redefinition (HotSwap) is not available 怎么解决?
2、commandbutton中有一个onclick属性,在其后添上对应的javascript代码即可。
如:<h:commandbutton type="button" onclick="alert("javascript")"/>
<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();
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;
但是pageContext没有getOut()方法啊 为什么?chuan122345() 这个我以前就知道可以的。我想知道有没有更直接的办法。
getOut
public abstract JspWriter getOut()The current value of the out object (a JspWriter).
Returns:
the current JspWriter stream being used for client response
只要在<h:form>里加上一个onsubmit属性即可:
<h:form onsubmit="调用js">
是不是得用什么东西事例化一下啊。
要不他怎么知道是哪个页面的pageContext?
前面我所说的方法当然并不是全部的代码,当然有一部分需要你自己去实现一下,既然你不太明白,我就说明白一点吧:
你要在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();
用jsf怎么把pagecontext给action?
jsf初始后台action是自动的。
mybean mybeans = new mybean(pageContext);
mybeans.myscript();
这样的代码,明白吗?
但是在action里调用一个jsp页面new mybean的话有两个问题?
我的页面还有其他组件帮定的action里的属性
1、new的是action的bean那你new的bean和JSF自动事例化的bean不是一个句炳吧,数据取不到吧。
2、new的是其他bean那同样action里的一些数据区不到吧。
3、在新页面传过去的pageContext跟原来页面的pageContext一样吗?
如果是这样的话,可以参考以下解决方案。
<h:outputText escape="false" value="#{TestBean.script}" />
在banking bean 里 添加属性 String script;
在action里面将script付值。如script="<script>alert('通过了')</script>";
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');"/>