某个页面的Onclick事件,执行其他页面的POST操作

时间:2010-11-15 06:40:41

标签: java javascript ajax model-view-controller jsp

让我用一个场景解释我的问题:
我有网页“A.jsp”和“B.jsp”。 “B.jsp”是一个页面,其表单需要输入字段,“用户名”,并在提交时显示具有用户特定信息的特定页面“C.jsp”。 “A.jsp”具有一个表格,该表格对应于“B.jsp”上的“用户名”。点击“A.jsp”上的某个“用户名”,我希望通过点击的用户名特定信息重定向到“C.jsp”。

我如何完成它?

我正在使用MVC框架。只有A.jsp和B.jsp绑定到控制器,C.jsp只是一个View。但是,我认为这不是一个问题,因为这似乎更像是一个javascript问题。

使用原型javascript框架,我尝试了以下内容:
   redirectToC =函数(PAGEURL){
            var username = document.getElementById(“user1”)。value;
            URL = PAGEURL; //我正在使用B.jsp作为Pageurl
            $ j.ajax({                 类型:'POST',
                url:url,                 数据:“username =”+用户名,
                成功:功能(要求){
                    window.location的=请求;
                }
            });
    }

2 个答案:

答案 0 :(得分:0)

C.jsp是否仅支持POST - 或者它是否也支持GET请求?

  1. 如果是,请在“用户名”链接的onClick中,将浏览器的位置(我认为document.location)设置为C.jsp的网址,并将用户名作为GET参数。由于您是动态生成A.jsp页面,因此可以在生成时将此URL嵌入到页面中
  2. 如果没有,我可以想到的一个糟糕的黑客是使用用户名实现table元素,作为隐藏的表单元素,点击后通过javascript提交 - 'form'.submit()

答案 1 :(得分:0)

<form id="showUserForm" action="/controller/showUser" method="POST">
    <input type="hidden" id="username" name="username">
</form>

..........

<a onclick="showUser('${users.userName}')" href="#"></a>

..........

<script type="text/javascript">
    function showUser(userName){
        document.getElementById("username").value = userName;
        document.getElementById("showUserForm").submit();
    }
</script>