Search.java///////////////////////////////////////////////////////////////////////////////////////////////////////// public String execute() throws Exception {
if (isInvalid(OrderNumber)) {
msg = "请输入订单号!";
return INPUT;
}
if (null == new SearchDAO().getStock(OrderNumber)){
msg = "此订单号不存在!";
return INPUT;
}
tstock = new SearchDAO().getStock(OrderNumber);
return SUCCESS;
}SearchDAO.java///////////////////////////////////////////////////////////////////////////////////////////////////////public String getStock(String OrderNumber) {
Tstock tstock = new Tstock();
String sql = "SELECT * FROM Stock WHERE OrderNumber=?";
PreparedStatement pstat = null;
ResultSet rs = null;
String userid = null;
Connection conn = new DBHelper().getConn();
try {
pstat = conn.prepareStatement(sql);
pstat.setString(1,OrderNumber);
rs = pstat.executeQuery();
while (rs.next()) {
userid = rs.getString(1);
tstock.setOrderNumber(rs.getString(1));
tstock.setAdminNumber(rs.getString(2));
tstock.setMerNumber(rs.getString(3));
tstock.setMerName(rs.getString(4));
tstock.setMerCategory(rs.getString(5));
tstock.setStockAmount(rs.getString(6));
tstock.setMerPrice(rs.getString(7));
tstock.setStockNumber(rs.getString(8));
tstock.setOrderDate(rs.getDate(9));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstat != null)
pstat.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return userid;
}
说明:
jsp页面 一个输入框名是OrderNumber 和 数据库里的列名一致。我就是要找出和输入框输入的OrderNumber 一致的那一行。1.如果输入框里什么都不输入,显示 "请输入订单号!" 一切正常!
2.如果输入正确的OrderNumber 值,页面显示出数据库里相应的那一行 一切正常!
3.如果输入错误的OrderNumber 值,页面不显示 错误的提示信息!我觉得错误输入的话。。userid里始终是空值。但是就是不出现错误提示。奇怪请教。

解决方案 »

  1.   

    验证机制是默认的吗 还是在validate方法里面啊 这应该是验证代码有问题吧
      

  2.   

    userid 返回确实是null  返回null也没有错误,页面就应该不会出现错误提示的
      

  3.   

    楼主说的“3.如果输入错误的OrderNumber 值,页面不显示 错误的提示信息! 我觉得错误输入的话。。userid里始终是空值。但是就是不出现错误提示。奇怪”
    没明白能详细说说吗?你的程序没有对输入的OrderNumber验证的方法吗
    这个情况主要是在验证方法中来处理错误的OrderNumber,
    保证其不能在输入错误的OrderNumber时候执行插入数据方法
    而是跳转到相应的页面提示相应的错误信息
    要有贴出来看看,没有楼主可以按上述说的做就可以了