Я пытаюсь выучить сервлеты и столкнулся с проблемой. Когда я использую тире или подчеркивание в атрибуте имени элемента HTML, значение, которое получает сервлет, равно нулю. Однако, если я не использую подчеркивания или тире, сервлет получает введенное значение.
<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);