永发信息网

javascript中如何获取jsf后台数据?

答案:2  悬赏:0  手机版
解决时间 2021-12-01 10:15
  • 提问者网友:遮云壑
  • 2021-11-30 20:42
javascript中如何获取jsf后台数据?
最佳答案
  • 五星知识达人网友:酒安江南
  • 2021-11-30 21:10
你这样做的目的是什么啊,如果只是想页面初始化的时候,初始化好一些数据的话。
你给后台的方法加上这个注解@PostConstruct
看你自己配置ManagedBean 你应该用的是jsf1.2 你试下这个注解吧 2.0中是可以的
不行的话 我想1.2中也有其他方法 实现的追问能加下QQ细说一下么?316330950追答你的QQ 是拒绝添加好友 。。追问再加下 谢谢了!
全部回答
  • 1楼网友:山有枢
  • 2021-11-30 22:30
你的想法就错了,
1.ajax如果要调用后台Bean的方法,必须把jsf的viewstate也一并发送给后台,这样jsf才能恢复视图。所以用commandlink是不行的。
2.成功调用后台后,后台返回数据,你用ajax接收就可以了。追问我就是想知道怎么调用啊 能细说么?
比如我用jquery的ajax方法,
$.ajax({
url:"",
type:"post",
success:function(data){
}
})
我想知道我的url怎么写,如果我写成form.action我怎么与我的后台方法关联咧?追答你可以这样试试,看直接用commandlink提交的时候,后台接收了哪些数据,然后把这些数据用ajax提交给后台,这样就可以调用后台的bean了
if (req) {
req.onreadystatechange=function() {
if (req.readyState==4){
if(req.status==200){
if(req.responseText == 0){
window.top.location.href=context+"/";
} else{
var returnArray = req.responseText.split(",");
document.getElementById("_idJsp0:tab1:allMoney").innerHTML = returnArray[0];
document.getElementById("_idJsp0:tab1:pocketMoney").innerHTML = returnArray[1];
document.getElementById("_idJsp0:tab1:deposit_kj").innerHTML = returnArray[2];
document.getElementById("_idJsp0:tab1:japanAllMoney").innerHTML = returnArray[3];
document.getElementById("_idJsp0:tab1:japanDeposit").innerHTML = returnArray[4];
document.getElementById("_idJsp0:tab1:abroadDeposit").innerHTML = returnArray[5];
}
}
else {
alert("エラー!!データ取得失敗しました。");
}
}
};
req.open('POST',context+"/account/user.jsf",true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send("_idJsp0:tab1:month="+month+"&ajax=t&_idJsp0_SUBMIT=1&_idJsp0:_link_hidden_&_idJsp0:_idJsp11_indexSubmit&_idJsp0:_idcl&javax.faces.ViewState="+document.getElementById("javax.faces.ViewState").value);
}
我这个没有用jquery,直接用的ajax,不过原理一样的,希望能给你参考作用
我提交了一个按钮,然后后台返回数据,动态刷新页面上指定区域
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯