关于OperaMasks框架的一些看法和不懂之处,希望能得到大家的讨论

时间:2022-04-27 09:28:36
小弟不才,最近在看一个operaMasks的框架,金蝶的中间件,基于ext

我觉得这个东西可以做一些管理系统,介面很好(毕竟是ext的集成)

但也在学习中发现了一些问题,也许是我没有学懂,发现了里面的一些问题。(与struts对比)

列举:

1、导航控制中可以采用xml配置,(faces-config.xml),但无法include。这样给团队开发和系统维护造成很大困难

   虽然可是不采用xml这种方式,而直接写入java文件中,但那样就耦合度太高,还有不灵活问题。

2、xhtml在与bean绑定时,发现,xhtml不能放在web-inf目录下。(如果放进去,会不能成功绑定)

   而如果全放在web-inf外面的话,无疑是管理系统的安全隐患(虽然可以加入过滤,拦截)

3、xhtml与bean绑定时,会通过operamasks.xml设置绑定规则,但如果我的包,类,页面很多的话,都在一个xml中配置,也是鸡肋。

如果大家有对operaMasks有研究的话,希望大家对我提出的疑点加以分析。同时做出更优秀的作品。
小弟不才,这些问题没有解决。大家帮我解决一下。

7 个解决方案

#1


先看看JSF吧,那是基于jsf框架的。

#2


1.导航可以faces-config.xml来指定,但是那里的一般规则是forward,不是redirect。可以通过在控件的action里直接指定页面地址,或者在action事件的服务器端代码里直接转向页面。
采用无法include?可以用模版的,在WebContent/resources下面定义,然后页面里可以引用。
2.这个方式没用过,不是很了解。
3.xhtml与bean的绑定可以直接在bean里采用annotation,比如
@ManagedBean(name = "yourbeanname")

#3


回复2楼:

1、如果用action直接指向页面地址的话,那样就紧耦合了。不太灵活

   如果是团队开发的话,那么,大家都写faces-config.xml,那样就太不方便而且难管理了。


第三个回答,应该是已经解决了,我当时的意思是xhtml与bean绑定,是在operamasks.xml中有一段配置,
  <view-mapping>
    <url-pattern>*</url-pattern>
    <model-bean>#{~view}Bean</model-bean>
  </view-mapping>
  这样,比如page1.xhtml,则对应上Page1Bean.java
那么,就要要求我的页面不能有重中的情况,但,如果建立几个文件夹来保存相应的xhtml的话,(比如:WebContent\page\page1.xhtml那bean对应为:@ManagedBean(name = "page.page1Bean")

如果我把一个页面放进WEB-INF里面,那么,我把对应的bean写为了WEB-INF.page.page1Bean  那样却找不到bean文件了。。。也就回到了第二个问题上。


#4


总结起来,我只是想

1、能不能多有几个faces-config.xml这样的文件,这样可以团队间更好的管理自己的东西。

2、只是想怎么样才能把一个xhtml页面放在web-inf下面,并且,和bean绑定上。
  

#5


不用faces-config.xml里实现跳转而在action里实现有两种方法:
1.<h:commandButton value="Submit" onclick="return check();" action="next" />
2.<h:commandButton value="Submit" onclick="return check();" action="#{bean.action_save}" />

public void action_save()
{
getResponse().sendRedirect("next.xhtml");
}
两者效果一样。
前者的跳转效果是foward,与faces-config.xml里配置一样。后者是sendRedirect,个人觉得更好使。比如页面跳转在不同的包下面,那么在页面跳转的时候,引用css之类的路径很容易错误。

#6


感谢  focusforce 的回答。
我在用这个框架的时候还遇到一个问题,想请你回答一下。(focusforce 辛苦。O(∩_∩)O~)


这个框架的操作方式一部分用到的注入注解。而它的Bean在写@ManagedProperty("#{feeService}")这个的时候,却是读spring配置文件的XML,就是<bean id="" class="">.....的那种方式。

我想在spring的这个XML中取消这部分,同样用上注解。可是却报了异常? 请问,这个applicationContext.xml应该怎么样写?

#7


好了,问题解决了。呵呵。最后那个问题实在问的是有点弱。。。

非常感谢focusforce的回答。

#1


先看看JSF吧,那是基于jsf框架的。

#2


1.导航可以faces-config.xml来指定,但是那里的一般规则是forward,不是redirect。可以通过在控件的action里直接指定页面地址,或者在action事件的服务器端代码里直接转向页面。
采用无法include?可以用模版的,在WebContent/resources下面定义,然后页面里可以引用。
2.这个方式没用过,不是很了解。
3.xhtml与bean的绑定可以直接在bean里采用annotation,比如
@ManagedBean(name = "yourbeanname")

#3


回复2楼:

1、如果用action直接指向页面地址的话,那样就紧耦合了。不太灵活

   如果是团队开发的话,那么,大家都写faces-config.xml,那样就太不方便而且难管理了。


第三个回答,应该是已经解决了,我当时的意思是xhtml与bean绑定,是在operamasks.xml中有一段配置,
  <view-mapping>
    <url-pattern>*</url-pattern>
    <model-bean>#{~view}Bean</model-bean>
  </view-mapping>
  这样,比如page1.xhtml,则对应上Page1Bean.java
那么,就要要求我的页面不能有重中的情况,但,如果建立几个文件夹来保存相应的xhtml的话,(比如:WebContent\page\page1.xhtml那bean对应为:@ManagedBean(name = "page.page1Bean")

如果我把一个页面放进WEB-INF里面,那么,我把对应的bean写为了WEB-INF.page.page1Bean  那样却找不到bean文件了。。。也就回到了第二个问题上。


#4


总结起来,我只是想

1、能不能多有几个faces-config.xml这样的文件,这样可以团队间更好的管理自己的东西。

2、只是想怎么样才能把一个xhtml页面放在web-inf下面,并且,和bean绑定上。
  

#5


不用faces-config.xml里实现跳转而在action里实现有两种方法:
1.<h:commandButton value="Submit" onclick="return check();" action="next" />
2.<h:commandButton value="Submit" onclick="return check();" action="#{bean.action_save}" />

public void action_save()
{
getResponse().sendRedirect("next.xhtml");
}
两者效果一样。
前者的跳转效果是foward,与faces-config.xml里配置一样。后者是sendRedirect,个人觉得更好使。比如页面跳转在不同的包下面,那么在页面跳转的时候,引用css之类的路径很容易错误。

#6


感谢  focusforce 的回答。
我在用这个框架的时候还遇到一个问题,想请你回答一下。(focusforce 辛苦。O(∩_∩)O~)


这个框架的操作方式一部分用到的注入注解。而它的Bean在写@ManagedProperty("#{feeService}")这个的时候,却是读spring配置文件的XML,就是<bean id="" class="">.....的那种方式。

我想在spring的这个XML中取消这部分,同样用上注解。可是却报了异常? 请问,这个applicationContext.xml应该怎么样写?

#7


好了,问题解决了。呵呵。最后那个问题实在问的是有点弱。。。

非常感谢focusforce的回答。