java - 如何将产品ID从产品目录发送到java类?

标签 java forms jsp struts2

(这个问题很难,但我还无法解决)我有一个使用 < 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/

相关文章:

java - 使用 JPA 和 Eclipselink 在 JSP 文件中显示现有数据库表中的数据

java - 标签库的目的?

java - 使用 JAVA 从 JSON 文件(嵌套对象数组)打印特定值

python - 如何将多个文件上传到 BlobStore?

javascript - 我应该如何改进我的 javascript 表单验证?

php - Symfony2 - 扩展或替换 SonataUserBundle 注册表

java - 在html(servlet/jsp)中打印jena结果集

java - 将频率转换为 java.time.Period 类型

java - 将 Servlet 上下文参数传递给 Spring MVC Controller

java - 使用screencap截屏时出现0字节文件