当前位置: 首页 > news >正文

郑州营销网站官方网站优化方法

郑州营销网站,官方网站优化方法,网站优化 方案,注册公司的具体步骤解决问题–硬编码#xff0c;需要为您的应用程序创建自定义配置#xff0c;例如struts配置文件#xff0c;以仅通过更改文件来改变应用程序行为。 Apache Digester可以轻松为您完成此任务。 使用Apache Digester相当容易将XML文档转换为相应的Java bean对象层次结构。 请参阅… 解决问题–硬编码需要为您的应用程序创建自定义配置例如struts配置文件以仅通过更改文件来改变应用程序行为。 Apache Digester可以轻松为您完成此任务。 使用Apache Digester相当容易将XML文档转换为相应的Java bean对象层次结构。 请参阅下面的“摘要”。 Digester引入了三个重要概念 元素匹配模式 处理规则 对象堆栈。 元素匹配模式将 XML元素与处理规则相关联。 范例 你有什么 Java类 包含数据的XML文件 您有Java类和相应的xml文件。 您希望从xml数据创建Java类实例。 您需要编写哪些额外的代码。 分步任务 在类路径中添加Apache Digester 3 jar文件Commons日志jarBeanutils jarcglib jar 如果没有Java类则为相应的xml文件创建Java类。或者如果没有xml文件则根据java类创建。注-属性名称xml和java类中的层次结构应匹配否则需要在此处未提及的摘要XML规则中提供映射。 如以下示例中所述创建摘要规则XML文件 用几行来从XML加载Java对象 现在在行动– 这是我的Eclipse项目结构 任务2 –如下创建数据xml文件您要从中加载数据 例如– chain-config.xml ?xml version1.0 encodingUTF-8?catalogs!-- Default Catalog: Path Info example --catalog!-- Command that maps Path Info patterns to Commands --chain nameCOMMAND_MAPPERcommand classNameorg.apache.commons.chain.web.servlet.PathInfoMapper/command forward/pathinfo.jsp classNameorg.apache.commons.chain.apps.example.ForwardCommand//chain!-- Foo Command --chain name/foocommand attributepathinfoFooCount classNameorg.apache.commons.chain.apps.example.CountCommand//chain!-- Bar Command --chain name/barcommand attributepathinfoBarCount classNameorg.apache.commons.chain.apps.example.CountCommand//chain/catalog!-- Catalog for Request Parameter example --catalog namereqparam!-- Command that maps a Request Parameter to Commands --chain nameCOMMAND_MAPPERcommand catalogNamereqparam classNameorg.apache.commons.chain.web.servlet.RequestParameterMapper/command forward/reqparam.jsp classNameorg.apache.commons.chain.apps.example.ForwardCommand//chain!-- Foo Command --chain namefoocommand attributereqparamFooCount classNameorg.apache.commons.chain.apps.example.CountCommand//chain!-- Bar Command --chain namebarcommand attributereqparamBarCount classNameorg.apache.commons.chain.apps.example.CountCommand//chain/catalog/catalogs 创建相应的Java类 Catalog.java import java.util.ArrayList; import java.util.List;public class Catalog {/*** uml.property namename*/private String name;/*** Getter of the property ttname/tt* return Returns the name.* uml.property namename*/public String getName() {return name;}/*** Setter of the property ttname/tt* param name The name to set.* uml.property namename*/public void setName(String name) {this.name name;}/*** uml.property namechains*/private ListChain chainsnew ArrayListChain();public void addChains(Chain chain){this.chains.add(chain);}} Chain.java import java.util.ArrayList; import java.util.List;public class Chain {/*** uml.property namename*/private String name;/*** Getter of the property ttname/tt* return Returns the name.* uml.property namename*/public String getName() {return name;}/*** Setter of the property ttname/tt* param name The name to set.* uml.property namename*/public void setName(String name) {this.name name;}/*** uml.property namecommands*/private ListCommand commandsnew ArrayListCommand();/*** Setter of the property ttcommands/tt* param commands The commands to set.* uml.property namecommands*/public void addCommands(Command command) {this.commands.add(command);}} Command.java import java.util.ArrayList; import java.util.List;public class Chain {/*** uml.property namename*/private String name;/*** Getter of the property ttname/tt* return Returns the name.* uml.property namename*/public String getName() {return name;}/*** Setter of the property ttname/tt* param name The name to set.* uml.property namename*/public void setName(String name) {this.name name;}/*** uml.property namecommands*/private ListCommand commandsnew ArrayListCommand();/*** Getter of the property ttcommands/tt* return Returns the commands.* uml.property namecommands*/public List getCommands() {return commands;}/*** Setter of the property ttcommands/tt* param commands The commands to set.* uml.property namecommands*/public void addCommands(Command command) {this.commands.add(command);}} 任务3 –创建 摘要程序 规则 digester-catalog-rules.xml ?xml version1.0? !DOCTYPE digester-rules PUBLIC-//Apache Commons //DTD digester-rules XML V1.0//ENhttp://commons.apache.org/digester/dtds/digester-rules-3.0.dtd digester-rulespattern valuecatalogs/catalogobject-create-rule classnameCatalog/set-properties-rule/!-- comment :bean-property-setter-rule patternname/ use as shown above if say catalognamereparam/name /catalog instead of catalog namereparam /catalog--!-- Nested Pattern for Characters --pattern valuechainobject-create-rule classnameChain/set-properties-rule/ !-- Nested Pattern for Characters --pattern valuecommandobject-create-rule classnameCommand/set-properties-rule/set-next-rule methodnameaddCommands paramtypeCommand/ /patternset-next-rule methodnameaddChains paramtypeChain/ /patternset-next-rule methodnameadd paramtypeCatalog/ /pattern /digester-rules 任务4 –加载xml数据的客户端程序 import java.io.IOException; import java.io.InputStream; import java.net.URL;import org.apache.commons.digester3.Digester; import org.apache.commons.digester3.binder.DigesterLoader; import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; import org.xml.sax.SAXException;import java.util.ArrayList; import java.util.List;public class runProgram {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stub// Create an instance of the Digester from the XML rule setDigesterLoader digesterLoader DigesterLoader.newLoader(new FromXmlRulesModule() {Overrideprotected void loadRules() {// TODO Auto-generated method stubloadXMLRules( getClass( ).getResource(/com/tatu/resources/digester-catalog-rules.xml));}}); Digester digester digesterLoader.newDigester();ListCatalog catalogs new ArrayListCatalog();// Push a reference to the plays List on to the Stackdigester.push(catalogs);// Parse the XML documentInputStream input Digester.class.getClass().getResourceAsStream(/com/tatu/resources/chain-config.xml);try {Object root digester.parse(input);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} 做完了 因此已经用xml数据加载了catalogs对象。 上述解决方案要注意的几点 object-create-rule创建一个对象 其余规则如其名称所暗示的那样简单明了object-create-rule创建一个新实例set-properties-rule从xml属性如目录元素的name属性设置对象的属性而bean-property-setter-rule设置嵌套xml元素中对象的属性例如catalog name reparam / name / catalog而不是catalog name reparam / catalog – set-next-rule 用于递归set-next-rulerule移至下一个目录链和命令标签。 您还指定了每种情况下要调用的方法该方法会将对象添加到父类中定义的集合中例如set-next-rule methodname addCommandsparamtype Command/此处为addCommands方法将命令对象添加到父链类中定义的命令收集对象。 您需要新的自定义规则请创建自摘要器Rule类派生的自己的Rule类。 有任何问题请发表您的评论。 再想一想您不希望在xml文件和java类之间出现所有这些问题。 猜猜怎么着有个避免的办法。 但是除非您着急否则我不喜欢这个把戏。 但是每次使用快捷方式时都必须失去灵活性。 技巧是使用Apache Betwixt。 记住要使用Betwixt您需要使用Apache Digester 2.1。 有关更多信息请访问apache Betwixt网站。 使用Betwixt BeanWriter将Java Bean写入文件然后使用BeanReader从该文件读取。 从BeanWriter生成文件后就可以更改值并在BeanReader中加载该文件。 需要在此处省略配置之间的映射 祝您编程愉快别忘了分享 参考在我的软件开发博客博客上来自我们的JCG合作伙伴 Bijay Deo的示例中使用Apache Digester-轻松进行配置 。 翻译自: https://www.javacodegeeks.com/2012/09/apache-digester-example-make-easy.html
http://www.pierceye.com/news/214531/

相关文章:

  • 网站开发程序用什么好用新浪微博做网站
  • 什么免费推广网站好旅游订房网站开发需求文档
  • 网站运营是做啥的wordpress带会员中心主题
  • 网站设计怎么弄微信表情开放平台官网
  • 做网站纸张大小滨州网站建设模板建设
  • wordpress建站位置被跨境电商骗了怎么办
  • 巫山网站建设哇塞fm网站维护
  • 南宁百度网站推广计算机网站建设与推广
  • 汉中网站建设开发做微网站是订阅号还是服务号号
  • 中国商城网站建设h5响应式网站模板下载
  • 建设个商城网站需要多少钱网上商城系统平台官网
  • 软件开发与网站开发的区别最新源码
  • 电子商务网站建设策划中国网站建设公司排行
  • 网站的推广方式组合经验丰富的网站制作公司
  • 北京企业网站建设php制作公司网站首页
  • 保险网站建设网站 为何要 备案
  • 南宁网站设计可以找我wordpress 主题
  • 池州家居网站建设怎么样h5链接是什么意思
  • 网站添加站长统计代码凡科建站登录入口官方正版
  • 淮北做网站的公司有哪些手机网站设计只选亿企邦
  • 网站服务器打不开爱站工具网
  • php网站接口开发wordpress添加作者
  • 网站建设漂亮的模板创新网站建设工作
  • 国内做服装的网站有哪些方面wordpress邮件订阅
  • 建立个人网站主题安徽省建设厅网站打不开
  • 做互联网小程序 和网站有没有前景广州网站制作教程
  • 新网网站内部优化wordpress菜单图标
  • 深圳市龙华区住房和建设局网站网站开发连接数据库
  • 做张家界旅游网站多少钱做网站的步骤 优帮云
  • 怎么建立一个好公司网站网站模版参考