我是java web编程的新手。所以,这就是我所做的,
我已经构建了一个decorator
模型,我有一个servlet
来调用模型的不同类的方法。
在JSP
文件中,我有每个项目的项目和数量列表菜单。数量显示为<List> </List>
我需要做的是,无论何时更改数量,请致电doPost
调用装饰类重新计算价格并在同一JPS
页面中更新价格
我尝试使用<select id="id1" name="id1" onchange="document.menu.submit()"
,正在调用doPost
,但我正被转发到空白页面!这是servlet页面。我想更新价格并保持在同一个JSP
页面
所以,基本上我需要在servlet中调用servlet
doPost
或其他函数并将价格返回到同一个JSP
页面
这是一个项目的快照 来自JSP
<select id="id1" name="id1" onchange="document.menu.submit()">
<option value="0"> 0</option>
<option value="1"> 1</option>
<option value="2"> 2</option>
<option value="3"> 3</option>
<option value="4"> 4</option>
<option value="5"> 5</option>
</select>
<td> <input type="text" name="totalTxtbox" id="totalTxtbox" style="width:40px;"/> </td>
来自servlet
private Model model;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
int id1=Integer.parseInt(request.getParameter("id1"));
double total;
total= calculatePrice(id1, id2, id3, id4, id4); // This method handles the price calculation
request.setAttribute("totalTxtbox", total);
}
很抱歉,如果这是一个小问题!
答案 0 :(得分:1)
您可以为您的servlet创建 Asynchronous Call 。
AJAX是Asynchronous JavaScript和XML的首字母缩写。这是一个团体 相互关联的技术,如JavaScript,DOM,XML,HTML,CSS AJAX允许您无需异步发送和接收数据 重新加载网页。所以它很快。
AJAX允许您不向服务器发送重要信息 整个页面。因此,只有来自客户端的有价值数据才会被路由 到服务器端。它使您的应用程序具有交互性和更快的速度。
您只需要一些JavaScript。
例如,您要将数据发送到的servlet的URL为servlet.ajx
,并且您希望发送两个变量userId
和itemId
,然后您可以在JSP中编写它页。
<head>
<!-- ... -->
<script src="path/to/jquery.js" type="text/javascript"></script>
<script>
function doSubmit() {
$.ajax({
type: 'POST',
url: 'servlet.ajx',
data: 'userId=' + userid + '&itemId=' + itemId,
error: function(response) {
// Gets called when an error occurs with error details in variable response
},
success: function(response) {
// Gets called when the action is successful with server response in variable response
}
});
}
</script>
</head>
答案 1 :(得分:0)
答案 2 :(得分:0)
没有一种快速简便的方法可以回发到服务器,只需更新总字段即可。据我所知,这些是获得你所需要的3种最流行的方式:
JSP - 表达式语言(EL) - 这需要你刷新 页面,并在执行此操作时,使用用户填写字段 类型。为此,您可以捕获所有输入数据并将其放入 通过Request或Session属性返回JSP页面。
AJAX - AJAX可以使用服务器数据更新HTML页面的部分内容 没有刷新整个页面。
JavaScript - 现在最常见的是,数据编辑是在 客户端使用JavaScript。在你的情况下,这可能是最大的 感觉如果您已经拥有页面上已有的数据。它可能是 就像一行或两行JavaScript函数一样简单(比如说, calcTotals)通过将提交更改为: 平变化= “calcTotals();”我不是JavaScript专家,但如果那样的话 所有你想要做的,我先尝试一下。