首页 > 解决方案 > 为什么 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);

标签: javajspservlets

解决方案


推荐阅读