【问题标题】:spring mvc: select tagspring mvc:选择标签
【发布时间】:2010-01-27 08:45:35
【问题描述】:

我有 2 张桌子:

message(id, name, content, channel_number) // channel_number is foreign key
channel(number, name) // number is primary key

我使用hibernate来映射2个表

java类

public class Message {

 private Integer id;
 private String name;
    private String content;
 private Channel channel;
}

public class Channel {

 private Integer number;
 private String name;
}

休眠配置

<class name="Message" table="message">
  <id name="id" column="id">
   <generator class="native" />
  </id>
  <property name="name" column="name" />
  <property name="content" column="content" />
  <many-to-one name="channel" column="channel_number" not-null="true" />
 </class>

 <class name="Channel" table="channel">
  <id name="number" />
  <property name="name" />
 </class>

在春天,我有表单来创建/编辑消息。我有一个选择框来选择一个频道。 所以,我在控制器中加载所有频道并在视图中显示

<form:form commandName="message" method="post" action="messageForm.htm">
    ...
    <form:select path="channel" items="${channelList}" itemValue="number" itemLabel="name"/>

</form:form>

当我按下提交时,什么也没有发生,它仍然在 jsp 页面中并且没有重定向到 onSubmit 方法(在我添加这个选择之前一切正常)

【问题讨论】:

    标签: hibernate spring-mvc


    【解决方案1】:

    您通过表单传递的任何值都应该是字符串或整数。您不能在表单上提交频道对象。另一个原因是您无法从请求中获取对象。在 servlet 中 request.getParameter() 返回 String。

    您希望分配给 value 属性的是某种 ID,然后您可以使用它来引用适当的 Channel 对象。如果它是一个数字,它可以是一个原始的 int、Integer 或 String 表示形式——只要将它映射到一个 Integer 或 String 类型的命令对象属性即可。换句话说,通道需要是整数或字符串。为了清楚起见,您可能应该将其重命名为 channelID。

    然后将该 int channelID 变量也放入您的 Message POJO 中。在控制器中,您可以使用该选定的通道 ID 创建一个通道对象,并将该通道对象设置为创建的消息对象。例如,在控制器类中:

        Message message = (Message ) command;
        Channel channel= new Channel();
        channel.setChannelID(message.getChannelID());
        message.setChannel(channel);
    

    当我遇到同样的问题时,这对我有用。该线程更详细地解释了该问题。 http://forum.springsource.org/showthread.php?t=33825

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多