java - 为什么 HTML 元素的 name 属性差异会影响 Servlet 中的变量值?
问题描述
我正在尝试学习 Servlet,但遇到了一个问题。当我在 HTML 元素的 name 属性中使用破折号或下划线时,servlet 接收到的值为 null。但是,如果我不使用下划线或破折号,servlet 会接收输入的值。
<input type="text" name="labourUnionFee" id="labour-union-fee" value="0">
String labourUnionFee = request.getParameter("labourUnionFee");
工作正常,结果可以从这里第一个片段的输出中看到,而
<input type="text" name="labour-union-fee" id="labour-union-fee" value="0">
String labourUnionFee = request.getParameter("labour-union-fee");
按下“提交”按钮时不返回任何值,因为这张图片展示了第二个片段的输出
为什么会出现这种情况?
编辑
我可能应该提到我也在使用 AJAX 函数:
function getNetSalary() {
$("#submitButton").click(function(){
$.ajax({
url:'someservlet',
data: {
labourUnionFee: $('#labour-union-fee').val()
},
type: 'POST',
cache: false,
success: function(data){
$('#net-salary-information-div').text(data);
},
error: function(){
alert('Please Fill all necessary fields');
}
}
);
}
);
这是在我的'someservlet'里面:
String labourUnionFee = request.getParameter("labour-union-fee");
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(labourUnionFee);
解决方案
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页