gpt4 book ai didi

java - 如何将jsp中的表单值发送到java

转载 作者:太空宇宙 更新时间:2023-11-04 07:48:51 25 4
gpt4 key购买 nike

我有一个包含 30 个不同字段的表单。当将它们全部传递给 Controller ​​时,每个 Controller 都需要有一个属性以及一对 getter、setter。

我将把表单字段作为一个对象并将该对象发送到 Controller 。

我正在使用以下代码*但有些人建议从 jsp 调用 java 方法并使用 JSTL 是一种不好的做法,但不知道如何使用 JSTL 实现它。还有其他方法吗?*

我的 JSP

 <s:form>
code to implement form goes here
</s:form>

<jsp:useBean id="obj" class="com.User"/>

<jsp:setProperty property="*" name="obj"/>

<%
String myoutput = myController.Xclass(obj);
out.print(myoutput);
if(myController.Xclass(obj).equals("output"))
{
out.print("The form is successfully submitted.");
}
%>

Controller

  public String Xclass(User obj){
return "output";
}

澄清我的类图如下:

User Class {
all the attributes and getters setters
}

myController class extends User {

public String XClass(User obj){
... work on the inputes ...
return "output";
}
}

最佳答案

如果操作属性的数量是问题,请手动公开 POJO,或使用 ModelDriven .

手动执行很简单,例如:

public class UserController {
private User user; // Plus public getter and setter
}

然后在 JSP 中您可以按名称引用 User 属性:

<s:form ...>
<s:textfield key="user.firstName"/>
...

使用 ModelDriven 理论上更容易,因为它会自动放入堆栈。确保仅在需要时实例化新模型可能很棘手,但基本上(从内存中):

public class UserController implements ModelDriven<User> {
private User user;
public User getModel() { return user; }
}

直接在 JSP 中使用 User 属性,因为 User 被压入堆栈:

<s:form ...>
<s:textfield key="firstName"/>
...

类似地,在提交表单时,会创建一个模型并将其用作方法的第一个目标。

请记住,您永远不会向 Java 端发送对象:您始终且仅发送字符串(来自正常的 HTTP 表单提交)。服务器端可能有魔法将这些字符串转换为对象,但也仅此而已:魔法。魔法与希望。

关于java - 如何将jsp中的表单值发送到java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com