2016-10-18 11:27
问题一: jfinal 最核心的优势在于开发效率高、学习成本低、开发体验好、代码量少,并且 jfinal 的体量很小,只有一万行代码左右,核心代码只有 2000 行左右,所以可控性与扩展性极好。建议先试用一下,这样才有所体会
问题二:对工作流并没有多少经验,感觉上是建议自己写一个简单的,如果要集成的话,一定要选择简洁优雅的方案
问题三:对 jfinal 项目来说,业务层几乎是必须的,不带业务层的都是很小的项目应用场景,业务层做成无状态的,这样的话,内部可以持有一个全局变量,供所有地方直接使用,不用每次都创建 Service,以下是一个 AccountService 的示例:
public class AccountService {
// 全局共享的业务对象,但要保障无状态,这样才是线程安全的
public static final AccountService me = Enhancer.enhance(AccountService.class);
// dao 对象只让本业务使用,其它要用它的地方统统在业务层创建方法来转调
private final Account dao = new Account();
@Before(Tx.class)
public class doIt() {
....
}
}
在Controller 中可以有两种对业务层的用法,以下是用法一:
public class AccountController {
private AccountService srv = AccoutService.me;
public void action() {
srv.doIt();
}
对于其它非 AccountController 以下是用法二:
public class OtherController {
public void action() {
// 直接使用 me 对象
AccountService.me.doIt();
}
2016-10-18 11:15
@云海 在页面文件中可以获取到变量,是因为在后端使用 render(xxx.html) 对该页面进行了渲染,而你的 server-set.js 这个文件是个独立的资源文件, render(xxx.html) 时并不会去处理你的 server-set.js文件
js css jpg 等等这类资源是在 html 中使用链接指向的方式指定的,浏览器在发送第一次请求以后获取到的仅仅只是 html 文件内容而已,通过解析文件内容,得到 js css jpg 这些资源的 url 链接以后,浏览器会再次发起 n 个请求去获取这些资源,而这些请求通常是 tomcat jetty nginx 接管的,你的程序,尤其是你的 render(xxx.html) 对此全然不知
2016-10-17 18:25
@bobwill 几年前有个项目用了这种方式,代码找不到了,非常简单,按照下面的步骤做:
1:先创建国际化资源文件,假定叫 i18n.properties,里面可以先不写东西,把文件放在资源路径之下,maven项目是 resource 目录
2:在YourJFinalConfig.configConstant(...) 中添加 me.setI18nDefaultBaseName("i18n"),由于第一步中的资源文件的主文件名是 "i18n",这一步可以省略,别的名称则不能省
3:在 YourJFinalConfig.configInterceptor(...) 中添加I18nInterceptor全局拦截器:
me.add(new I18nInterceptor("_locale", "_res", true))
4:假定你在的某个页面叫 index.html,那么在这个页面相同的目录下面再创建一个 "zh_TW" 目录,然后在该子目录下创建繁体版的 index.html 文件,其中的 "zh_TW" 目录就表示繁体版的 locale,通过这种不断创建不同 locale 子目录的方式可以任意扩展多种国际化模板出来
5:在请求的时候,通过在浏览器中的 url 最后面添加 locale 信息就可以切换了,并且会一直保持住这个 locale 到 cookie 中,直到切换成新的 locale,url 例如:
http://yourwebsite.com/user?_locale=zh_TW
以上 url 中最的后面的 ?_locale=zh_TW 参数就是告诉拦截器切换使用这个地区的模板,这个 "_locale" 参数注是在第 3 步中创建 I18nInterceptor 对象时第一个参数指定的,可以修改
本质上,只要看一下 I18nInterceptor 就完全会使用了,搞定后记得回来写篇分享,不枉我写了这么多文字
2016-10-17 18:01
@hzw 你用的 SSM 框架,但问题的 title 是说在 jfinal 中添加 ueditor,建议去找找 SSM 有关方面的文档
2016-10-17 16:54
@hzw 图片上传、视频、表情出不来注意三件事:
1:ueditor.config.js 此配置文中 toolbars 配置项,是否启用了图片上传、视频等功能的工具栏图标
2:ueditor 在页面加载时,会向后端发起一个获取 /xxx/yyy/ueditor/jsp/config.json 后端配置文件的请求,在确保这个请求可以正确获取到 config.json 这个文件的内容
3:确保 config.json 这个文件中的配置是正确的