req.getParameter returns 空
req.getParameter returns null
我试图从我的请求中获取值,但它 return 为空。有什么问题?
这是我的表格:
<form class="register-form">
<input class="name" type="text" placeholder="name"/>
<input class="password" type="password" placeholder="password"/>
<button id="register">create</button>
</form>
我的post方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
String name = req.getParameter("name");
if (Objects.isNull(projectService.getByName(name))) {
logger.info("Registration new project " + name); //NAME == NULL ???
String password = req.getParameter("password");
int budget = Integer.parseInt(req.getParameter("budget"));
...
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write("Success");
}
和JS部分:
$(document).ready(function () {
$("button#register").click(function () {
var name = $("form.register-form input.name").val();
var password = $("form.register-form input.password").val();
if (name == '' || password == '') {
alert("Please fill all fields...!!!!!!");
} else {
var projectRegistration = {
projectName: name,
projectPassword: password
};
$.post("registration", projectRegistration, function (data) {
if (data === 'Success') {
$("form")[0].reset();
}
});
}
});
});
我正在使用 Tomcat 版本 8.5.56
在 JS 代码中,您正在构建一个传递给 post 请求的对象 projectRegistration。这个对象有键 projectName 和 projectPassword 应该在 servlet 中使用:
String name = req.getParameter("projectName");
希望对您有所帮助。
问题的根本原因是您没有传递名称为 name
的任何参数,因为您没有名称为 name
.[=14= 的输入字段]
替换
<input class="name" type="text" placeholder="name"/>
与
<input class="name" type="text" placeholder="name" name="name"/>
我试图从我的请求中获取值,但它 return 为空。有什么问题?
这是我的表格:
<form class="register-form">
<input class="name" type="text" placeholder="name"/>
<input class="password" type="password" placeholder="password"/>
<button id="register">create</button>
</form>
我的post方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
String name = req.getParameter("name");
if (Objects.isNull(projectService.getByName(name))) {
logger.info("Registration new project " + name); //NAME == NULL ???
String password = req.getParameter("password");
int budget = Integer.parseInt(req.getParameter("budget"));
...
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write("Success");
}
和JS部分:
$(document).ready(function () {
$("button#register").click(function () {
var name = $("form.register-form input.name").val();
var password = $("form.register-form input.password").val();
if (name == '' || password == '') {
alert("Please fill all fields...!!!!!!");
} else {
var projectRegistration = {
projectName: name,
projectPassword: password
};
$.post("registration", projectRegistration, function (data) {
if (data === 'Success') {
$("form")[0].reset();
}
});
}
});
});
我正在使用 Tomcat 版本 8.5.56
在 JS 代码中,您正在构建一个传递给 post 请求的对象 projectRegistration。这个对象有键 projectName 和 projectPassword 应该在 servlet 中使用:
String name = req.getParameter("projectName");
希望对您有所帮助。
问题的根本原因是您没有传递名称为 name
的任何参数,因为您没有名称为 name
.[=14= 的输入字段]
替换
<input class="name" type="text" placeholder="name"/>
与
<input class="name" type="text" placeholder="name" name="name"/>