论坛首页 Java企业应用论坛

ssh合作,这样配置是否正确

浏览 5650 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-23   最后修改:2012-02-23
struts 2.3 spring3.1 hibernate3.6
web.xml
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:root-context.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

struts.xml
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
	 <package name="default" namespace="/" extends="json-default">
	 	<action name="*_*" class="{1}Action" method="{2}">
	 		<result>/WEB-INF/views/admin/{1}_list.jsp</result>
	 	</action>
	 </package>

action代码
@Scope("prototype")
@Controller("naviAction")
public class NaviAction {
	
	private Navigation navi;
	public String add() {
		return "add";
	}
	//getter and setter

	public void setNavi(Navigation navi) {
		this.navi = navi;
	}
}

实体
@Entity
@Table(name = "MH_NAVIGATION")
public class Navigation implements Serializable {
	private static final long serialVersionUID = -7534010944756906396L;
	@Id
	@GenericGenerator(name = "idGenerator", strategy = "uuid")
	@GeneratedValue(generator = "idGenerator")
	private String id;
	
	private String name;
	private String link;
	private String type;
	private String target;
	private String description;
	private String ctime;
	private String rank;
	private String state;//get set省略……

}

页面
	<form id="channel_form" action="navi_add" method="post">
		<input name="navi.name" type="text">
		<input name="navi.rank" type="text">
		<input name="navi.link" type="text">
		<input name="navi.type" type="text">
		<input type="submit">
	</form>


提交的结果是navi对象里只有一个属性有值
浏览器请求中所有的属性都post了
debug,action中setNavi执行了几次,属性都是空,进入add方法后navi里只有一个属性有值。

不知道我这中使用方法有什么问题,为什么属性set不进去。

我的思路是spring注解管理bean,struts直接找spring里的action对象
   发表时间:2012-02-23  
没有建议吗?
0 请登录后投票
   发表时间:2012-02-23  
set是用来干嘛的
0 请登录后投票
   发表时间:2012-02-23  
我在action中的setNavi上合navi的所有set属性方法上加断点,发现每次setNavi的时候都会创建一个navi对象
0 请登录后投票
   发表时间:2012-02-23  
我找到原因了,你们猜?
0 请登录后投票
   发表时间:2012-02-26  
Navigation  构造器有问题?
0 请登录后投票
   发表时间:2012-02-26  
真的没必要用struts,spring mvc足够强大了
0 请登录后投票
   发表时间:2012-02-26  
你的 Action方法中 把get()方法放进去试试
0 请登录后投票
   发表时间:2012-02-26  
action中有setter方法, 对象中含无参构造方法, 对象中的属性有set/get
0 请登录后投票
   发表时间:2012-02-27   最后修改:2012-02-27
SoCoolMan 写道
你的 Action方法中 把get()方法放进去试试

如这位兄台所说,action中的navi没有get方法,每次struts找action中的navi对象找不到就新创建一个set进去,最后对象里只有一个属性。本来是想action中代码简洁一点,不添加没有用的方法,没想到get方法也有用,struts真不智能啊,同一个action的同一个属性同一次请求new了一次还去new
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics