如何将表单的值从jsp发送到Java

我有一个包含30个不同字段的表格。将它们全部传递给控制器​​时,需要为每个属性都具有一个属性,以及一对getter,setter。

我将使表单字段作为一个对象并将该对象发送到控制器。

我正在使用以下代码

我的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.");

}

%>

控制器

  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; }

}

User由于将User压入堆栈,因此直接在JSP中使用属性:

<s:form ...>

<s:textfield key="firstName"/>

...

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

请记住,您永远不会将对象发送到Java端:您总是并且仅发送字符串(通过常规HTTP表单提交)。服务器端可能会有魔术将这些字符串转换为对象,但这仅仅是魔术。魔术和希望。

以上是 如何将表单的值从jsp发送到Java 的全部内容, 来源链接: utcz.com/qa/399007.html

回到顶部