- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户单击个人资料链接时,我尝试显示用户个人资料详细信息。我正在使用 eclipse 。同样采用mvc架构。没有发生错误,但数据没有显示在 jsp 文件中。
CustomerProfileController servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name = request.getParameter("name");
CustomerViewQuery cvq = new CustomerViewQuery(name);
try {
List<Customer> customers = cvq.list();
request.setAttribute("customers", customers); // Will be available as ${products} in JSP
request.getRequestDispatcher("CustomerProfile.jsp").forward(request, response);
} catch (SQLException e) {
throw new ServletException("Cannot obtain vehicles from DB", e);
}
}
CustomerView查询文件
package dbhelpers;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import models.Customer;
public class CustomerViewQuery {
DBConnection databaseCon = new DBConnection();
String uName;
public CustomerViewQuery(String name) {
this.uName = name;
}
public List<Customer> list() throws SQLException {
List<Customer> customers = new ArrayList<Customer>();
try (
Connection con = databaseCon.dbconnect();
PreparedStatement pst = con.prepareStatement("SELECT * FROM customers WHERE username='\"+uName+\"'");
ResultSet resultSet = pst.executeQuery();
) {
while (resultSet.next()) {
Customer customer = new Customer();
customer.setId(resultSet.getInt("id"));
customer.setName(resultSet.getString("name"));
customer.setEmail(resultSet.getString("email"));
customer.setAddress(resultSet.getString("address"));
customer.setSex(resultSet.getString("sex"));
customer.setBday(resultSet.getString("bday"));
customer.setTelephone(resultSet.getString("telephone"));
customer.setUsername(resultSet.getString("username"));
customer.setPassword(resultSet.getString("password"));
customers.add(customer);
}
}catch(SQLException e) {
e.printStackTrace();
}
return customers;
}
}
Getter 和 Setter 位于 Customer.java 文件中
我没有收到任何错误,但 CustomerProfile.jsp 文件中也没有显示任何内容。这是代码
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach items="${customers}" var="customer">
</c:forEach>
<div class="container mt-5"><br>
<form role="form" action="CustomerController" data-toggle="validator" method="post" id="registerForm">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" name="name" value="${customer.name}" placeholder="Name">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" name="email" value="${customer.email}" placeholder="Email">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Address</label>
<div class="col-sm-10">
<input type="text" name="address" value="${customer.address}" placeholder="Address">
</div>
</div>
<div class="form-group row">
<label for="sex" class="col-sm-2 col-form-label">Sex</label>
<div class="col-sm-10">
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline1" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">Male</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline2" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Female</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="birthdate" class="col-sm-2 col-form-label">Birthdate</label>
<div class="col-sm-10">
<input type="date" name="bday" value="${customer.bday}" placeholder="Birthdate" required>
</div>
</div>
<div class="form-group row">
<label for="telephone" class="col-sm-2 col-form-label">Telephone</label>
<div class="col-sm-10">
<input type="text" name="tele" value="${customer.telephone}" placeholder="Telephone">
</div>
</div>
<div class="form-group row">
<label for="username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" value="${customer.username}" placeholder="Username">
</div>
</div>
<div class="form-group row">
<label for="passowrd" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" name="password" value="${customer.password}" id="inputPassword" placeholder="Password" data-minlength="6">
<div class="invalid-feedback">
Please provide a valid city.
</div>
</div>
</div>
<button type="submit" class="btn btn-primary btn-block btn-large">Sign me up.</button>
</form><br>
</div>
最佳答案
在这里我用你的代码改变了一些东西。现在应该可以了。让我知道。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
CustomerViewQuery cvq = new CustomerViewQuery();
try {
List<Customer> customers = cvq.list(name);
request.setAttribute("customers", customers);
request.getRequestDispatcher("CustomerProfile.jsp").forward(request, response);
} catch (SQLException e) {
throw new ServletException("Cannot obtain vehicles from DB", e);
}
}
这里也有一些变化:
public class CustomerViewQuery {
public List<Customer> list(String name) throws SQLException {
List<Customer> customers = new ArrayList<Customer>();
//get connection like this
try(Connection con = DBConnection.dbconnect()) {
PreparedStatement pst = con.prepareStatement("SELECT * FROM customers WHERE username=?;");
pst.setString(1, name); //set name like this (The '1' means first occurance of a question mark '?')
ResultSet resultSet = pst.executeQuery();
while (resultSet.next()) {
Customer customer = new Customer();
customer.setId(resultSet.getInt("id"));
customer.setName(resultSet.getString("name"));
customer.setEmail(resultSet.getString("email"));
customer.setAddress(resultSet.getString("address"));
customer.setSex(resultSet.getString("sex"));
customer.setBday(resultSet.getString("bday"));
customer.setTelephone(resultSet.getString("telephone"));
customer.setUsername(resultSet.getString("username"));
customer.setPassword(resultSet.getString("password"));
customers.add(customer);
}
}catch(SQLException e) {
e.printStackTrace();
}
return customers;
}
}
您的 forEach JSTL 标记没有迭代任何内容...
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach items="${customers}" var="customer">
<div class="container mt-5"><br>
<form role="form" action="CustomerController" data-toggle="validator" method="post" id="registerForm">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" name="name" value="${customer.name}" placeholder="Name">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" name="email" value="${customer.email}" placeholder="Email">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Address</label>
<div class="col-sm-10">
<input type="text" name="address" value="${customer.address}" placeholder="Address">
</div>
</div>
<div class="form-group row">
<label for="sex" class="col-sm-2 col-form-label">Sex</label>
<div class="col-sm-10">
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline1" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">Male</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline2" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Female</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="birthdate" class="col-sm-2 col-form-label">Birthdate</label>
<div class="col-sm-10">
<input type="date" name="bday" value="${customer.bday}" placeholder="Birthdate" required>
</div>
</div>
<div class="form-group row">
<label for="telephone" class="col-sm-2 col-form-label">Telephone</label>
<div class="col-sm-10">
<input type="text" name="tele" value="${customer.telephone}" placeholder="Telephone">
</div>
</div>
<div class="form-group row">
<label for="username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" value="${customer.username}" placeholder="Username">
</div>
</div>
<div class="form-group row">
<label for="passowrd" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" name="password" value="${customer.password}" id="inputPassword" placeholder="Password" data-minlength="6">
<div class="invalid-feedback">
Please provide a valid city.
</div>
</div>
</div>
<button type="submit" class="btn btn-primary btn-block btn-large">Sign me up.</button>
</form><br>
</div>
</c:forEach>
编辑:以下是无需循环即可实现的方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
CustomerViewQuery cvq = new CustomerViewQuery();
try {
//not list required this time, created a new method called 'getCustomer'
Customer customer = cvq.getCustomer(name);
request.setAttribute("customer", customer);
request.getRequestDispatcher("CustomerProfile.jsp").forward(request, response);
} catch (SQLException e) {
throw new ServletException("Cannot obtain vehicles from DB", e);
}
}
CustomerViewQuery 类中名为“getCustomer”的新方法
public class CustomerViewQuery {
public Customer getCustomer(String name) throws SQLException {
Customer customer = new Customer();
try(Connection con = DBConnection.dbconnect()) {
PreparedStatement pst = con.prepareStatement("SELECT * FROM customers WHERE username=?;");
pst.setString(1, name); //set name like this (The '1' means first occurance of a question mark '?')
ResultSet resultSet = pst.executeQuery();
while (resultSet.next()) {
customer.setId(resultSet.getInt("id"));
customer.setName(resultSet.getString("name"));
customer.setEmail(resultSet.getString("email"));
customer.setAddress(resultSet.getString("address"));
customer.setSex(resultSet.getString("sex"));
customer.setBday(resultSet.getString("bday"));
customer.setTelephone(resultSet.getString("telephone"));
customer.setUsername(resultSet.getString("username"));
customer.setPassword(resultSet.getString("password"));
}
}catch(SQLException e) {
e.printStackTrace();
}
return customer;
}
}
除了删除了 JSTL forEach 标记(因为不再需要它)之外,此处没有任何更改。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<div class="container mt-5"><br>
<form role="form" action="CustomerController" data-toggle="validator" method="post" id="registerForm">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" name="name" value="${customer.name}" placeholder="Name">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" name="email" value="${customer.email}" placeholder="Email">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Address</label>
<div class="col-sm-10">
<input type="text" name="address" value="${customer.address}" placeholder="Address">
</div>
</div>
<div class="form-group row">
<label for="sex" class="col-sm-2 col-form-label">Sex</label>
<div class="col-sm-10">
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline1" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">Male</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input name="sex" type="radio" value="${customer.sex}" id="customRadioInline2" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Female</label>
</div>
</div>
</div>
<div class="form-group row">
<label for="birthdate" class="col-sm-2 col-form-label">Birthdate</label>
<div class="col-sm-10">
<input type="date" name="bday" value="${customer.bday}" placeholder="Birthdate" required>
</div>
</div>
<div class="form-group row">
<label for="telephone" class="col-sm-2 col-form-label">Telephone</label>
<div class="col-sm-10">
<input type="text" name="tele" value="${customer.telephone}" placeholder="Telephone">
</div>
</div>
<div class="form-group row">
<label for="username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" value="${customer.username}" placeholder="Username">
</div>
</div>
<div class="form-group row">
<label for="passowrd" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" name="password" value="${customer.password}" id="inputPassword" placeholder="Password" data-minlength="6">
<div class="invalid-feedback">
Please provide a valid city.
</div>
</div>
</div>
<button type="submit" class="btn btn-primary btn-block btn-large">Sign me up.</button>
</form><br>
</div>
关于java - 将从数据库检索的数据从servlet显示到jsp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50439910/
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!