weixin_42204848 2008-06-23 05:05
浏览 343
已采纳

JSF中如何写js代码提交到JSF的管理Bean的一个方法中

请问在JSF中如何写js代码提交到JSF的管理Bean的一个方法中

faces-config.xml代码片段
[code="xml"]

loginAction

com.test.action.login.LoginAction

request

[/code]

java代码片段
[code="java"]
public class LoginAction {
public String sayHello() {
System.out.println("hello");
return "main";
}
}
[/code]

jsp代码片段
[code="html"]


/h:form
[/code]

js代码片段
[code="js"]
function sayHello(){
[color=red]请问这里应该如何让上面的提交到LoginAction.sayHello()中[/color]}
[/code]

先感谢大牛了!

  • 写回答

2条回答 默认 最新

  • iteye_521 2008-06-23 09:17
    关注

    JSF判断用户点击的哪个Command组件是根据请求参数中包含的command组件的ID判断的,如果你的form的id 为myform,你的commandButton为mybutton,那么一旦你的request中包含参数名为myform:mybutton的参数(参数值随便取),JSF就会执行拥有这个ID的Command组件绑定的Action方法。
    我一般用jquery的form插件通过ajax提交form,同时在请求参数中追加上我想触发的Action绑定在页面中的组件的id,这个效果和普通的点击页面上的Command组件是一样的,不过通过jquery实现了异步提交form并触发后台某个Action方法,好处就是你可以把这个过程通过js注册到页面上任何元素上
    例如:
    function save(isShowState,isValidate){
    $.blockUI('',{border: '0px',filter: 'alpha(opacity=50)'});
    var result = false;
    var options = {
    type: 'GET',
    data: {'[color=red]infoForm:saveButton[/color]': 'ajaxSaveButton'},
    success: successCallBack,
    cache: false,
    async: false,
    error: function(){
    alert('保存过程中发生未知错误!');
    }
    }

    if(isValidate){//需要校验
        options.beforeSubmit = infoFormOnSubmit;
    }
    
    $('#infoForm').ajaxSubmit(options);
    function successCallBack(){
        result = true;
        if(isShowState){
            alert('基本信息保存成功!');
        }
    }
    $.unblockUI();
    return result;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题