0

(这个问题很难,但我还不能解决)我有一个产品目录,它使用 <div> 标签显示不同的值,应该有一个按钮供用户将所选产品添加到购物篮,但我没有知道将 ProductsID 发送到 java 类。

 Name:ProductA     Name:ProductB 
 Price:3.5         Price:5.0
 Add               Add

我在 JSP/struts2 中的代码如下:

这是一个通过接收值将填充标签中的 Friend.name 的表单。

<sx:div>
   <div id="Name">name:${Friend.name}</div>
   <s:form action="myMethod" >
     <s:submit/>
   </s:form>
</sx:div>

一旦用户单击提交,它就会转到所需的类并运行第 11 行,但会显示“name is: null”。

private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String myMethod() {
Line 11  System.out.println("in mymethod");  // output is : mymethod
     System.out.println("The name is:" + this.name); // output is: the name is: null
     return "SUCCESS";
}

我不确定这是否是因为 jsp 代码位于 AJAX 标记中而导致的另一个问题。

当我使用时很奇怪

 <s:textfield name="Name" label="Name" /> 

并输入它接受的输入并使用 this.name 显示值!

另一个例子HTML和JSP(新版本)代码如下:

  <s:form action="AddProduct" >
     <tr><td><div id="image"><img src=${Product.thumbNailUrl} alt="image"/></div></td></tr>
       <s:textfield name="Name" label="Name" />  
     <tr><td><div id="Name">Here:${Product.name}</div></td></tr>
     <s:hidden id="Name1" value="name1">${Product.name}</s:hidden>
     <s:label id="name2" name="name2" value="John"/>
     <tr><td><div id="Rate:">Rate:${Product.highRate}</div></td></tr>
     <tr><td><div id="Address">Address:${Product.address}</div></td></tr>
     <tr><td>
                  <s:submit/>
    </s:form>

** * ** * HTML ** _

  <tr><td><div id="Name">Here:Beaufort</div></td></tr>
     Beaufort<input type="hidden" name="" value="name1" id="Name1"/>
     <tr>
         <td class="tdLabel"></td>
         <td><label id="name2">John</label></td>
     </tr>

     <tr><td><div id="Rate:">Rate:437.19</div></td></tr>
     <tr><td><div id="Address">Address:33 Beaufort</div></td></tr>
     <tr><td>
                  <tr>

      <td colspan="2"><div align="right"><input type="submit" id="AddProduct_0" 
       value="Submit"/>
      </div></td>
       </tr>

    </table></form>
4

2 回答 2

2

我不知道你有多少经验,struts但我认为你的问题有一个非常简单的解决方案:

首先,您需要有一个表格。此表格应包含您需要传递给班级的任何内容。(如果你是forms新手,做一点谷歌查找各种教程

其次,将表单设置action为负责处理它的 java 类。(如果你对controllers谷歌有点struts新手教程

第三,在该课程中接收输入并按照您的意愿进行操作。


更新

我们有(某种)相同的类似情况。有两种选择:

One to have a hidden field and have the IDs there (hidden field or just simply do not show it in your page), so whenever an object is selected the ID will be sent too.

两个使用休眠二级缓存,并使用休眠检索它。使用load方法从该缓存中检索 ID。

为什么是2级?因为它不查询数据库,效率更高。

于 2012-10-09T13:15:21.100 回答
1

每当您在视图(html)上填充目录时,您可能应该保留一个隐藏字段,该字段将存储相应产品的 productId。因此,每当用户将产品添加到购物车时,您都可以轻松获取该产品的 id 并将其发送到服务器。

于 2012-10-09T13:17:36.070 回答