如何通过单个JSP页面更新和添加信息(所有这些)(这里使用了hibernate)?

时间:2013-11-15 21:55:23

标签: hibernate jsp struts2

产品表有3列(ID,名称和状态)。状态字段有两个值:“可用”和“NA”。该表的输出将根据产品可用性分为2个表格。

请点击链接了解详情: http://theproblemdomains789.blogspot.com/2013/11/sample-form.html

使用hibernate,我试图解决这个问题。输出没问题。但我想允许通过表单更新或编辑或添加新信息。更新正常,数据已成功更新。但是当我尝试通过表单添加新条目时,我无法添加。我的示例代码如下:

Bean定义:

  public Product{
String histryId;
String name;
String status;

.....
 }

动作类定义:

List<Product> dataList;
String[] histryId;
String[] name;
String[] status;

// getter and setter
......

public String viewProduct() {
    ....
    return SUCCESS;
}

public String updateProduct() {
    ProductBusiness pb = new ProductBusiness();
    dataList = pb.updateProduct(name,histryId,status););
    return SUCCESS;
}

业务层:

public List<Product> updateProduct(String[] name, String[] histryId, String[] status) {

    ProductDAO historyDAO = new ProductDAO();

    for (int i = 0; i < historyId.length; i++) {
        if (historyId[i] > 0) {
        Product update = historyDAO.getEntryByID(Integer.toString(historyId[i]));
        update.setName(name);
        historyDAO.updateEntry(update);
    }

    else{                   
        if (name[i].length()>0  && (status[i] == "Available") ) {
        Product p = new Product();
        p.setName(name);
        historyDAO.updateEntry(p);                          
        }
    }
}

DAO图层

public void updateEntry(Product p) {
    ...
    s.saveOrUpdate(p);
    ...
}

示例JSP代码:

<s:iterator value="dataList">
<tr>
    <td><s:textfield name="name"/></td>
    <td><s:hidden name="historyId"/></td>
    <td><s:hidden name="status"  value="Available"/></td>
</tr>
</s:iterator>

有谁能告诉我我在这里做的错误是什么?

**数据正在成功更新。但是当我尝试添加新信息时,我无法添加信息。

1 个答案:

答案 0 :(得分:2)

变化:

if (name[i].length()>0  && (status[i] == "Available")))

为:

if (name[i].length()>0  && (status[i].equals("Available")))

并阅读:

How do I compare strings in Java?