(这个问题很难,但我还无法解决)我有一个使用 < 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>
最佳答案
我不知道您对 struts
有多少经验,但我认为您的问题有一个非常简单的解决方案:
首先,您需要一个表单。该表格应包含您需要传递给类(class)的任何内容。 (如果您不熟悉表单
,请用谷歌搜索一下以查找各种教程)
第二,将表单的action
设置为负责处理它的java 类。 (如果您是 Controller
新手,请谷歌一下 struts
教程)
第三,在该类中接收输入并按照您的意愿进行操作。
<小时/> 已更新我们有(有点)相同的类似情况。有两个选项可用:
一个有一个隐藏字段并在那里有 ID(隐藏字段或只是不在页面中显示它),因此每当选择一个对象时,ID 也会被发送。
两个使用hibernate二级缓存,并使用hibernate检索它。使用 load
方法从该缓存中检索 ID。
为什么是 2 级?因为它不查询DB,效率更高。
关于java - 如何将产品ID从产品目录发送到java类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799647/