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

读心王爷太难缠/seo整站优化费用

读心王爷太难缠,seo整站优化费用,用dw做电子商务网站步骤,深圳企业营销型网站建设struts2被很多新手诟病的一个地方在于“配置过于复杂”,相信不少初学者因为这个直接改投Spring-MVC了。convention-plugin、 config-browser-plugin这二个插件的出现,很大程度改善了这个囧境。简言之:convention-plugin采用"约定大于配置…

struts2被很多新手诟病的一个地方在于“配置过于复杂”,相信不少初学者因为这个直接改投Spring-MVC了。convention-plugin、 config-browser-plugin这二个插件的出现,很大程度改善了这个囧境。

简言之:convention-plugin采用"约定大于配置”的思想,只要我们遵守约定,完全可以少写配置甚至不写配置;而config-browser-plugin则用于方便的浏览项目中的所有action及其与jsp view的映射。这二个插件结合起来学习,能很方便的搞定struts2中各种复杂的action-view映射需求。

一、config-browser-plugin使用

<span style="font-size:14px;"><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-config-browser-plugin</artifactId><version>2.3.16</version></dependency></span>

maven项目的pom.xml中加上这个即可,运行后,浏览 http://localhost:8080/{你的项目名称}/config-browser/ 即可看到当前项目中的所有action 

注:以下内容中,凡有url的地方,项目名称假设为struts2-helloworld

如果跑不起来,检查服务器应用WEB-INF/lib/下是否有struts2-config-browser-plugin-2.3.16.jar 这个文件

二、convention-plugin 使用

<span style="font-size:14px;"><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-convention-plugin</artifactId><version>2.3.16</version></dependency></span>

pom.xml中加上这个后,可以把struts.xml配置文件给干掉了(或者改个名),部署App,如果启动正常,则表示环境ok。如果提示缺少asm 啥类,检查下面这几个依赖项,是否也加进来了

<span style="font-size:14px;"><dependency><groupId>asm</groupId><artifactId>asm</artifactId><version>3.3.1</version>
</dependency><dependency><groupId>asm</groupId><artifactId>asm</artifactId><version>3.3.1</version>
</dependency><dependency><groupId>asm</groupId><artifactId>asm-commons</artifactId><version>3.3.1</version>
</dependency><dependency><groupId>asm</groupId><artifactId>asm-tree</artifactId><version>3.3.1</version>
</dependency></span>

2.1 零action的view

convention-plugin约定所有的jsp view都放在WEB-INF/content目录下,在这个目录下先随便放一个名为"no-action.jsp"的jsp文件,里面随便写点啥

浏览 http://localhost:8080/struts2-helloworld/no-action

即:即使没有对应的Action类,struts2也能按约定正常展现页面。(当然,这只是开胃小菜,真正应用中,除了做一些纯静态的页面原型之外,大部分场景,背后还是要有Action类来支撑的)

2.2 常规映射

建一个HelloWorld.action类

<span style="font-size:14px;">package com.cnblogs.yjmyzz.action;import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;@Namespace("/home")
public class HelloWorldAction extends BaseAction {private static final long serialVersionUID = -8827776224243873974L;private String message;@Action("hello-world")public String execute() throws Exception {return SUCCESS;}@Action(value = "say-hi", results = { @Result(name = "success", location = "hello-world.jsp") })public String sayHi() throws Exception {message = "welcome to SSH!";return SUCCESS;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}</span>

解释一下:

第7行,在整个Action类上使用了@Namespace("/home"),表示整个Action最终浏览的url,是以 http://localhost:8080/{你的项目名称}/home/ 打头

第14行,通过注解@Action("hello-world"),把默认的/home/index.action路径,改成了/home/hello-world

至于execute方法,返回success后,对应的是哪个jsp文件,这个不用死记,通过config-browser-plugin看下便知

即:execute方法返回input/error/success中的任何一个,都会映射到/WEB-INF/content/home/hello-world.jsp 这个文件上

20行sayHI()方法上的注解有点意思,@Action(value = "say-hi", results = { @Result(name = "success", location = "hello-world.jsp") }),默认情况下,如果不指定location,返回success时,它应该对应 /WEB-INF/content/home/say-hi.jsp这个文件,但是通过location值,变成了hello-world.jsp,即与/home/hello-world共用同一个view.

 

3、拦截器问题

上一篇学习了通过拦截器来处理异常,采用convention插件后,会发现拦截器不起作用(struts.xml中配置了也一样)

<span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.enable.DynamicMethodInvocation" value="false" /><constant name="struts.devMode" value="false" /><package name="default" namespace="/" extends="struts-default"><interceptors><interceptor name="myinterceptor"class="com.cnblogs.yjmyzz.Interceptor.ExceptionInterceptor"></interceptor><interceptor-stack name="myStack"><interceptor-ref name="myinterceptor" /></interceptor-stack></interceptors><default-interceptor-ref name="myStack" /><default-action-ref name="index" /><global-results><result name="error">/WEB-INF/common/error.jsp</result></global-results><global-exception-mappings><exception-mapping exception="java.lang.Exception"result="error" /></global-exception-mappings><action name="index"><result type="redirectAction"><param name="actionName">hello-world</param><param name="namespace">/home</param></result></action></package><!-- 因为有Convention-plugin,就不再需要手动写action-view的映射规则了 -->
<!--     <include file="struts-home.xml" /><include file="struts-mytatis.xml" />  --></struts></span>

原因在于convention-plugin使用后,所有Action不再继承自默认defaultStack对应的package,为了解决这个问题,建议所有Action都继承自一个自定义的BaseAction类,然后在BaseAction上加上@ParentPackage("default"),让所有Action强制继承自struts.xml中定义的default package

<span style="font-size:14px;">package com.cnblogs.yjmyzz.action;import org.apache.struts2.convention.annotation.ParentPackage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ActionSupport;@ParentPackage("default")
public class BaseAction extends ActionSupport {private static final long serialVersionUID = -4320398837758540242L;protected Logger logger = LoggerFactory.getLogger(this.getClass());}</span>

基本用法就是这些,如果不清楚Action最终出来的url是啥,或者不清楚某个url最终会对应到哪个jsp文件,无需死记规则,只要善用config-browser-plugin,大多数下不用查阅文档即可快速解决问题。

作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


另外说一下我遇到的问题:缺少asm三个架包所导致(asm-3.3.jar,asm-commons-3.3.jar,asm-tree-3.3.jar)一直404错误,还有就是我犯了一个严重的错误:没看错误提示,导致我在哪里啥弄了一天,痛苦。。。。

关注公众号,分享干货,讨论技术


转载于:https://www.cnblogs.com/molashaonian/p/9097687.html

http://www.jmfq.cn/news/5283883.html

相关文章:

  • 科技局网站查新怎么做/烟台seo快速排名
  • 蚌埠网站建设兼职/seo搜索引擎优化工具
  • 香洲网站建设/免费一键生成个人网站
  • 企业网站建设报价方案/seo技术培训教程
  • 做网咖的网站/怎么创建网站?
  • 电子商务网站规划设计方案/网站搜索引擎优化报告
  • 帮传销做网站违法吗/合肥优化推广公司
  • 给实体店老板做的网站/百度竞价开户费用
  • 网站开发行业标准/seo网站管理招聘
  • 做散热网站/全国31省市疫情最新消息今天
  • 泰兴网站推广/关键词搜索广告
  • 河南郑州富士康最新招聘信息/徐州seo外包
  • 做网站所需要的代码/哪些网站有友情链接
  • 吉林省建设工程质监站网站/郑州网站seo优化
  • 网站制作在哪里找/河南百度关键词优化排名软件
  • 温州地区做网站/优化优化
  • 企点qq售卖平台/百度seo优化价格
  • 常德小学报名网站/旺道营销软件
  • 本溪 网站建设 做网站/推广平台下载
  • 政府网站建设专项自查报告/新网站多久会被百度收录
  • 简约网站内容布局/seo怎么收费
  • 衡阳网站制作公司/深圳全网推广平台
  • 高端网站设计公司上海/steam交易链接怎么获取
  • 淮安新网站制作/自己做一个网站要多少钱
  • 网站建设工作室/自媒体怎么做
  • 网站开发 演讲/广州seo优化外包公司
  • 做app找哪个网站/怎么提高百度搜索排名
  • 做网站数据对电脑要求/seo关键词查询工具
  • 武汉官方网站建设/网站友链查询接口
  • 外贸 企业网站 建设/网站推广经验