`
wangdj
  • 浏览: 25080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

初学者求解,一对多中的实体信息如果通过struts2页面中录入

阅读更多
Role.java

private String roleId;

private String roleName;

private String roleTel;

@OneToMany(fetch = FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name = "role_id")
private Set<User> userSet=new HashSet<User>();

get...set.....

User.java

private String userId;

private String userName;

@ManyToOne
@JoinColumn(name = "role_id")
private Role role;

get ... set ...

action.java

private Role role;

public String saveRole(Role role){
   .....
}
get ...set...


现在我在页面中想录入role及user信息

roleName:<input type="text" name="role.roleName"/>
roleTel:<input type="text" name="role.roleTel"/>
问题所在,我不清楚如何在页面中录入Set信息,我是这么录入的,可是没有录入进去

usreName:<input type="text" name="role.userSet[0].userName"/>
usreName:<input type="text" name="role.userSet[1].userName"/>
usreName:<input type="text" name="role.userSet[2].userName"/>

请问正确的该如何录入SET里的值呢,谢谢了









<script type="text/javascript">&lt;!-- google_ad_client = &quot;pub-1076724771190722&quot;; /* JE问答468x60 */ google_ad_slot = &quot;5958594507&quot;; google_ad_width = 468; google_ad_height = 60; //--&gt; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script>google_protectAndRun(&quot;ads_core.google_render_ad&quot;, google_handleError, google_render_ad);</script>

  • 问题补充 :可以对您的提问补充细节,以得到更准确的答案
    表情图标

    字体颜色: 标准 深红 红色 橙色 棕色 黄色 绿色 橄榄 青色 蓝色 深蓝 靛蓝 紫色 灰色 白色 黑色  字 体大小: 标准 1 (xx-small) 2 (x-small) 3 (small) 4 (medium) 5 (large) 6 (x-large) 7 (xx-large)  对齐: 标准 居左 居中 居右
    提示:选择您需要装饰的文字, 按上列按钮即可添加上相应的标签
    <script type="text/javascript"> var editor = new Control.TextArea.Editor(&quot;editor_body&quot;, &quot;bbcode&quot;, false); </script> 上传新的文件:
      提示信息:
    • 上传文件请压缩后再上传,允许zip, rar, gz, tar, bz2, jar, war格式的压缩文件
    • 上传图片推荐使用png, jpg, gif等类型
    • 文件大小不能超过10MB
  • 提高悬赏 :提高悬赏分,以提高问题的关注度
    0 您目前的积分:0
  • 无满意答案 :没有满意的回答,还可直接结束提问,关闭问题

<script type="text/javascript"> new Validation(&quot;problem_body_form&quot;); editor.setValue(&quot;&quot;); new Validation(&quot;problem_score_form&quot;); new Validation(&quot;problem_comment_form&quot;); </script>

回答

比如说在BookAction中有Set<Book> books(自己添加getter/setter)
添加BookAction-conversion.properties:
KeyProperty_books=number//books指定books这个set使用book的number属性作为set的索引
CreateIfNull_books=true

页面:
<s:iterator value="new int[3]" status="status">
  <tr><s:set name="index" value="#status.index+1"/>
      <s:set name="books" value="'books('+#index+')'"/>

      <td><s:textfield name="%#books+'.title'}"/></td><!--书名-->
      <td><s:textfield name="%#books+'.price'}"/></td><!--价格-->
      <td><s:textfield name="%#books+'.amount'}"/></td><!--数量-->
  </tr>
</s:iterator>


这块知识比较多,但是不难,一下子讲不完,大概就是你得配置一个struts的转换器,好让struts在提交表单的时候怎样将哪些表单元素组织 成目标对象,否则它是不晓得如何工作的。另外,由于是集合,前台一般用到struts的<s:iterator>迭代
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics