学习JForum体会

2024-02-18 12:38
文章标签 学习 体会 jforum

本文主要是介绍学习JForum体会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习JForum总结:

环境搭建:TOMCAT + MYSQL

第一步:安装部署

1、 去http://www.jforum.net/download.jsp网站下载jforum的发布包。

2、 安装mysql数据库。为了解决论坛出现的中文乱码问题,可以通过手动修改配置文件或者在安装mysql时设置编码为utf8,

可以避免页面中显示乱码。安装好mysql后,进入>mysql状态输入:CREATE DATABASE JForum DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3、 将jforum发布包拷贝到D:/apache-tomcat-6.0.16/webapps目录下即可。安装配置jforum可以通过两种方式实现,手动修改配置文件 或者通过页面提示信息安装步骤。为避免出错,我们选取自动安装的方式进行。

启动TOMCAT服务后,通过浏览器访问http://localhost:8080/jforum/install.jsp依照提示信息配置好所需信息,一路next。安装完成之后访问http://localhost:8080/jforum将会出现论坛首页。

第二步:分析JFORUM框架中配置文件

1、 zh_CN.properties文件中配置页面中显示的中文常用汉字。cmd下可以通过native2ascii -reverse zh_CN.properties a.properties命令对其反编码,开发者可以配置自己需要的页面中需要显示常量信息,编辑保存后再通过native2ascii a.properties zh_CN.properties 在编码回ascii。

2、 modulesMapping.properties文件中描述了模块名与实现该模块功能的java类的对应关系。

3、 locales.properties文件在SystemGlobals.properties文件中被配置加载,locales.properties 文件中配置各种国家支持的语言。locales.properties文件在ConfigAction.java中被读取。

4、 webapps/jforum/WEB-INF/config/database/generic/generic_queries.sql 文件中配置数据库查询语句而该sql文件又在SystemGlobals.properties文件中被配置加载。 SystemGlobals.properties文件中配置的变量信息在ConfigKeys.java类文件中配置对应的常量字符串。可以通过 String q = SystemGlobals.getSql("XXX")方式去获得需要的配置好的sql语句。I18n.getMessage("XXX")方式可以在页面中或者类中获得zh_CN.properties配置文件中配置的中文常量

5、 templatesMapping.properties配置文件配置相关的页面对应文件。templatesMapping.properties文件中配置的变量信息在TemplateKeys.java类文件中配置对应的常量字符串。

6、 jforum-custom.conf配置文件为有关数据库信息的文件,可以通过手动去修改,该文件为通过自动方式安装配置jforum时产生。

7、 urlPattern.properties配置文件为相关的action配置参数。

第三步:开发常用的包说明

1、 net.jforum.view.admin目录和net.jforum.view.forum目录下为存放的action文件,action文件中去调用dao接口对应的方法。

2、 net.jforum.dao目录下文件为数据库操作接口类文件。

3、 net.jforum.dao.generic目录下文件为与数据库交互的类文件,即接口的具体实现。

4、 net.jforum.util.preferences目录下的文件为比较重要的几个常量配置类以及配置文件读取类。

5、 net.jforum.entities目录下文件为论坛中各个对象实体。

第四步:重要的类说明

1、 ConfigLoader.java 类文件加载各个配置文件。

2、 ConfigKeys.java类文件中配置SystemGlobals.properties文件中配置的变量信息

3、 TemplateKeys.java类文件中配置templatesMapping.properties文件中对应的页面信息 action中调用时通过this.setTemplateName(XX)去实现跳转,通过this.context.put("message", message)方式实现向页面set对象信息供页面调用。

4、 SystemGlobals.java类文件为一个读取相关配置文件获得相关配置信息的帮助类。

5、 DataAccessDriver.java类文件为创建dao实体的一个抽象类,通过XXXDAO um = DataAccessDriver.getInstance().newXXXDAO()方式去实例化dao对象。

6、 GenericDataAccessDriver.java类文件为DataAccessDriver抽象类文件的具体实现类,创建DAO对象的类与数据库进行交互。

7、 JForumExecutionContext.getConnection().prepareStatement(String sql) 通过此种方式在DAO中去创建PreparedStatement对象。然后由该对象执行数据库操作获得结果。

第五步:测试DEMO

1、通过修改配置文件modulesMapping.properties类添加一个模块。可以添加一个自己的测试DEMO模块,在该配置文件末尾添加如下代码myTest=net.jforum.test.MyTestAction 。作为该模块的处理类。

2. 在templatesMapping.properties文件中添加: myTest.addTest = myTest_add.htm myTest.listTest = myTest_list.htm 此文件映射action和result 模板的关系,表明执行后跳转的页面对应关系。

3. 在urlPattern.properties中添加: myTest.add.0 = myTest.list.0 = 此文件设置每个action参数.我们这action无参数。

4. 修改net.jforum.util.preferences.TemplateKeys类,添加: public static final String MYTEST_ADD = "myTest.add"; public static final String MYTEST_LIST = "myTest.list"; 引号里面的对应的字符串常量要与templatesMapping.

properties文件中定义对应页面的属性保持一致性。通过定义该信息,可以在action中去set其对应的跳转页面信息。

5. 参照第二步第1条提示修改a.properties文件后,编辑保存后再通过native2ascii a.properties zh_CN.properties 在编码回ascii文件格式。

6、 编辑header.htm页面添加如下代码,添加“我的测试”超级连接

<img src="${contextPath}/templates/${templateName}/images/icon_mini_members.gif" alt="[Members]" />

<a id="latest2" class="mainmenu" href="${JForumContext.encodeURL

("/myTest/addList")}">${I18n.getMessage("myTest")}</a>

7、 上面部分为测试demo跳转正常的测试,如果要与数据库进行交互,需要在另行参照如下步骤进行:

a)、数据库中增加一张测试表供测试使用。

b)、修改zh_CN.properties添加需要在页面显示的测试表字段中文信息。(步骤略)

c)、在net.jforum.dao目录下增加一测试类DAO接口文件TestDAO.java 以及net.jforum.dao.generic目录下的测试接口实现类GenericTestDAO.java 内部实现该测试对象的一系列与数据库交互的方法。

d)、在net.jforum.entities目录下增加测试试题对象的javabean文件。

e)、在WEB-INF/config/database/generic/generic_queries.sql文件中增加有关测试实体数据库交互的数据库脚本。

f)、完善MyTestAction.java 类文件中的list方法。内部实现与之对应的查询方法,并将结果对象返回到页面。

这篇关于学习JForum体会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721172

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识