Question2Answer(q2a)主题--“坚果盒”
前段时间心血来潮想建个问答站,找找开源程序找到了Q2A,无奈界面实在不喜欢,于是自己DIY了一个模板,好吧,其实我是抄的人人小站的风格~~。
这个风格做的不咋滴,部分细节地方没考虑的多细致,比较粗糙,因为做了一大半后突然没兴致了,而且有的功能跟我需要的不大一样,就搁置了~~~想要的下载了凑活着用吧,或者自己改改用也行
##点这个下载→:Jianguo.zip
解压后文件夹放到qa-theme下面,再在后台启用下就OK
界面截图:
前段时间心血来潮想建个问答站,找找开源程序找到了Q2A,无奈界面实在不喜欢,于是自己DIY了一个模板,好吧,其实我是抄的人人小站的风格~~。
这个风格做的不咋滴,部分细节地方没考虑的多细致,比较粗糙,因为做了一大半后突然没兴致了,而且有的功能跟我需要的不大一样,就搁置了~~~想要的下载了凑活着用吧,或者自己改改用也行
##点这个下载→:Jianguo.zip
解压后文件夹放到qa-theme下面,再在后台启用下就OK
界面截图:
常用注解
@Controller
在类上面定义,表明该类为控制器,返回字符串与redirect:xxx
@RequestMapping
在类或方法上面使用此注解,设置URL访问地址。它有两个属性,value指定访问路径,method指定指定请求方式,请求方式在RequestMethod这个类中,全部以常量形式定义,它默认使用GET请求。
@RequestParam
指定Request请求参数,在方法参数中定义,相当于传统的request.getParameter()。
@PathVariable
获取URL访问路径变量,这是Spring MVC 3.0框架才加入的特性,基于RESTful风格的URL访问路径。
@ModelAttribute
全局式的方法,在一组URL访问路径中,每次都会执行,方法返回结果保存在module会话中。
@Service
在类上面定义,指定被注解的类是业务逻辑组件,如果不指定具体的Bean ID,则采用默认命名方式,即类名的首字母小写。
@Autowired
IoC自动注入功能,替换以前的set写法,在SSH2中就已经开始使用了。
@Qualifier
对同一接口类有不同实现指定具体的实现类。
@ResponseBody
同样定义在方法上,Ajax调用声明,指定方法返回结果为Ajax回调函数结果。这是Spring MVC 3.0框架中增加的一个新特性。
@InitBinder
初始化数据绑定与类型转换,将传入的参数转换为自定义类型,或者对参数进行自定义处理。
@Controller 声明Action组件
@Service 声明Service组件 @Service("myMovieLister")
@Repository 声明Dao组件
@Component 泛指组件, 当不好归类时.
@RequestMapping("/menu") 请求映射
@Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype") 设定bean的作用域
Servlet拦截匹配规则事例
当映射为@RequestMapping(“/user/add”)时:
1、拦截*.do,例如:/user/add.do,弊端:所有的url都要以.do结尾。不会影响访问静态文件。
2、拦截/app/*,例如:/app/user/add,弊端:请求的url都要包含/app,@RequestMapping(“/user/add”)中不须要包含/app。
3、拦截/,例如:/user/add,弊端:对jpg,js,css静态文件的访问也被拦截不能正常显示。
4、拦截/*,可以走到Action中,但转发到jsp时再次被拦截,不能访问到jsp。
转发与重定向
可以通过redirect/forward:url方式转到另一个Action进行连续的处理。
可以通过redirect:url 防止表单重复提交 。
写法如下:
return “forward:/order/add”;
return “redirect:/index.jsp”;
<div id="overlay"></div> <div id="win"> <span>欢迎您的到来!</span> </div> </div>
遮罩样式:
#overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.5;filter:alpha(opacity=50);}
弹出层样式:
#win{position:absolute;top:50%;left:50%;width:400px;height:200px;background:#fff;border:4px solid #f90;margin:-100px 0 0 -200px;}
其中:-100px与-200px分别为弹出层(#win)高度(height:200px;)与宽度(width:400px;)的一半
===================ofbiz整体结构=====================
applications 目录,包含了OFBIz 核心的应用程序组件,如订单管理,电子商务存储等。
component-load.xml 文件定义了所有在OFBIZ启动时需要加载的应用程序的位置。这里的每一个组件,都是一个基于OFBIZ 构建的Web 应用程序。 所以,创建新的应用程序时,需要在该文件中添加应用程序的位置信息。但是在ofbiz\hot-deploy\目录下的应用程序不需要在component-load.xml里定义,ofbiz启动时会自动加载所有hot-deploy下的内容。
Framework 框架目录,包含OFBIZ 框架的组件,例如实体引擎和服务引擎。这是OFBIZ 框架的基础,它们负责数据访问、缓存、展示窗口、管理事务以及更多应用组件使用的低级任务。
hot-deploy 热部署目录,是另一个目录。它的组件能够被删除和自动载入。这里没有
component-load.xml 这个文件。本目录中所有的组件,都会在framework 和application 目录下的组
件被导入之后导入。
另外这个目录不需要通过component-load.xml来制定加载他们,这个目录下面符合ofbiz规则的都会被加载。
specialpurpose
殊目的的组件通常是没有取得作为OFBiz核心组件的资格。它们仅仅为一部分OFBiz用户服务。既然他们是(或者应该是)可选的,OFBiz可以(或者应该)在没有这些组件时候运行。这些组件在 ${OFBizInstallFolder}\specialpurpose目录中。
runtime
存放日志,web服务器等
===================ofbiz组件结构=====================
<condition>元素是<section>的一个子元素。如果该元素的条件计算是真,那么then部分将被执行,否则else将被执行。
如:
<condition>
<or>
<and>
<if-has-permission permission="PROJECTMGR_ADMIN"/>
<not><if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/></not>
</and>
<and>
<if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/>
<if-compare field="isMember" value="true" operator="equals"/>
</and>
<and>
<if-has-permission permission="PROJECTMGR_VIEW"/>
<not><if-has-permission permission="PROJECTMGR_ROLE_VIEW"/></not>
<if-compare field="parameters.mainAction" value="VIEW" operator="equals"/>
</and>
<and>
<if-has-permission permission="PROJECTMGR_ROLE_VIEW"/>
<if-compare field="isMember" value="true" operator="equals"/>
<if-compare field="parameters.mainAction" value="VIEW" operator="equals"/>
</and>
</or>
</condition>
<then>
<field-to-result field="hasPermission"/>
<return/>
</then>
<else>
<property-to-field resource="ProjectMgrUiLabels" property="ProjectMgrNoAccessToProject" field="failMessage"/>
<field-to-result field="failMessage"/>
<field-to-result field="hasNoPermission" result-name="hasPermission"/>
<return/>
</else>
condition内部可以放12种条件语句。分别是: