我想从JSP设置登录的Set
元素的值。
JSP页面:
<form action="Registered" method="post">
<div class="form-group">
<label>Company Name</label>
<s:textfield name="name" value="%{name}" id="name"/>
</div>
<div class="form-group">
<label>Address</label>
<s:textarea name="address" value="%{address}" id="address"/>
</div>
<div class="form-group">
<label>User Name</label>
<s:textfield name="logins[0].userName" value="%{logins[0].userName}" id="userName"/>
</div>
<div class="form-group">
<label>User Id</label>
<s:textfield name="logins[0].userId" value="%{logins[0].userId}" id="userId"/>
</div>
<div class="form-group">
<label>Mail Id</label>
<s:textfield name="logins[0].userMailid" value="%{logins[0].userMailid}" id="userMailid"/>
</div>
Pojo Classes
public class Client implements java.io.Serializable {
private Set logins = new HashSet(0);
//getter and setter
}
public class Login implements java.io.Serializable {
private Long id;
private Client client;
private String userId;
private String userName;
private String userMailid;
}
行动类
public String register() {
Client cl = new Client();
System.out.println(cl.getName() + " " + cl.getAddress());
}
我想将set的值设置为Client和Login的Action类。
怎么做?
答案 0 :(得分:0)
您可以使用这样的提交按钮:
<form action="Registered" method="post">
<div class="form-group">
<label>Company Name</label>
<s:textfield name="name" value="%{name}" id="name"/>
</div>
<div class="form-group">
<label>Address</label>
<s:textarea name="address" value="%{address}" id="address"/>
</div>
<div class="form-group">
<label>User Name</label>
<s:textfield name="logins[0].userName" value="%{logins[0].userName}" id="userName"/>
</div>
<div class="form-group">
<label>User Id</label>
<s:textfield name="logins[0].userId" value="%{logins[0].userId}" id="userId"/>
</div>
<div class="form-group">
<label>Mail Id</label>
<s:textfield name="logins[0].userMailid" value="%{logins[0].userMailid}" id="userMailid"/>
</div>
<input type="submit" value="Submit">
</form>
修改强>
一个不错的tutorial
在make属性文件之后:
#Global messages
name= name
submit = Submit
我相信你已经制作了Registered.jsp。
你可以运行你的项目!
答案 1 :(得分:0)
要将fildes绑定到Set
,您应该在此属性上添加注释
public class Client implements java.io.Serializable {
@Element(value = Login.class)
@Key(value = Long.class)
@KeyProperty(value = "id")
@CreateIfNull(value = true)
private Set logins = new HashSet(0);
//getter and setter
//now you need a property for login id, it should be initialized before JSP is populated
private Long loginId;
//getter and setter
}
现在绑定到JSP的字段更改为
<s:textfield name="logins(%{loginId}).userName" id="userName"/>
与绑定到集合的其他字段相同。
如果您正在使用iterator标记迭代一个集合,并且您在值堆栈顶部推送了Login
的实例,那么您可以获取其id
而不是使用loginId