[java]struts2入门
摘要
本文是struts2入门,配置教程。如何在IntelJ Idea中进行手动配置。在使用idea新建struts2web项目的时候,在下载jar包的过程中,下载失败,没办法就直接手动进行下载jar包。
步骤
- 从官网下载jar包,这里下载的是struts-2.3.34.zip,下载之后,解压
- 在struts-2.3.34\apps下找到
- struts2-blank.war 文件,通过修改扩展名,改为struts2-blank.zip,解压,找到lib下的所有jar包,如下图所示:
将其,拷贝到idea的demo项目下,如图
4、添加包引用 File>Project structure>Library>+
5、将struts-2.3.34\apps\struts2-blank\WEB-INF\classes\struts.xml文件拷贝到项目的src目录下,如图
保留struts节点,将其内部的节点都删除。
6、在src目录下添加包com.demo.action,并添加第一个action类
- package com.demo.action;
- public class HelloAction {
- public String helloWord() {
- return "200";
- }
- }
7、在src/struts.xml中添加如下配置
- <?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>
- <package name="hello" namespace="/" extends="struts-default">
- <!--配置action类 name 这里配置xxx,使用的时候 xxx.action 或者xxx,class 类的全路径(包+类名) method 要调用的方法-->
- <action name="hello" class="com.demo.action.HelloAction" method="helloWord">
- <!--配置得到action返回值,之后的跳转或者转发页面-->
- <result name="200">/success.jsp</result>
- </action>
- </package>
- </struts>
其中extends常用struts-default。namespace:相当于访问的action所在的目录,如果配置成/ 可以通过/hello.action 访问,如果配置成/aaa,那么需要通过/aaa/hello.action进行访问。
8、配置struts控制器,也就是过滤器
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
9、添加测试页面在index.jsp中,通过跳转,跳转到我们的hello.action
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>首页</title>
- </head>
- <body>
- <a href="${pageContext.request.contextPath}/hello.action">第一个struts2 web应用</a>
- </body>
- </html>
注意这里使用el表达式和jsp,需要添加包,添加tomcat自带的即可。
测试
跳转
到这里,我们的第一个struts2 web应用demo已经成功了。
那么,hello.action 必须得.action吗?
如果我们改成其他的可以吗,比如.dd,如下图所示:
当然,也可以不带action
如下
[java]struts2入门的更多相关文章
- java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器
实例1:实现客户端IP地址和访问方式输出到浏览器. IpAction.java package com.amos.web.action; import javax.servlet.http.HttpS ...
- java struts2入门学习--基于xml文件的声明式验证
一.知识点总结 后台验证有两种实现方式: 1 手工验证顺序:validateXxx(针对Action中某个业务方法验证)--> validate(针对Action中所有的业务方法验证) 2 声明 ...
- java struts2入门学习实例--使用struts2快速实现上传
一.文件上传快速入门 1).关于上传表单三要素 >>尽量以POST请求方式上传,因为GET支持文件大小是有限制的. >>必须要加上enctype="multipart ...
- java struts2入门学习--OGNL语言常用符号和常用标签学习
一.OGNL常用符号(接上一篇文章): 1.#号 1)<s:property value="#request.username"/> 作用于struts2的域对象,而不 ...
- java struts2入门学习--OGNL语言基本用法
一.知识点学习 1.struts2中包含以下6种对象,requestMap,sessionMap,applicationMap,paramtersMap,attr,valueStack; 1)requ ...
- java struts2入门学习--防止表单重复提交.OGNL语言学习
一.知识点回顾 防止表单重复提交核心思想: 客户端和服务器端和写一个token,比较两个token的值相同,则非重复提交;不同,则是重复提交. 1.getSession三种方式比较: request. ...
- java struts2入门学习---自定义类型转换
自定义类型转换器的作用就是将struts无法识别的类型转换成自己所需要的. 比如输入:广东-东莞-虎门,对应的输出时能输出:广东省 东莞市 虎门(镇/区) 这里涉及到的知识点即是将String转换为任 ...
- java struts2入门学习---文件下载的二种方式
一.关于文件下载: 文件下载的核心思想即是将文件从一个地方拷贝到另一个地方. 1.传统方式: 在Action中加入大量servlet api 操作.优点是好理解,缺点是耦合度高. 2.stream方式 ...
- java struts2入门学习---异常处理和类型转换
一.struts2对异常的处理 1.自定义局部异常: <action> <exception-mapping result="sonException" exce ...
随机推荐
- nodejs服务器读取图片返回给前端(浏览器)显示
1 前言 项目需要用nodejs服务器给前端传递图片,网上找了好多资料,多数都是怎么在前端上传图片的,然后通过看runoob.com菜鸟教程,发现其实是非常简单,用express框架就行了. 2 代码 ...
- [译]bootstrap-select (selectpicker)方法
方法 .selectpicker('val') 您可以通过调用val元素上的方法来设置所选值. $('.selectpicker').selectpicker('val', 'Mustard'); $ ...
- js子节点children和childnodes的用法(非原创)
想要获取子节点的数量,有几种办法. childNodes 它会把空的文本节点当成节点, <ul> 文本节点 <li>元素节点</li> 文本节点 <li> ...
- 怎样在win7 IIS中部署网站?
IIS作为微软web服务器的平台,可以轻松的部署网站,让网站轻而易举的搭建成功,那么如何在IIS中部署一个网站呢,下面就跟小编一起学习一下吧. 第一步:发布IIS文件 1:发布你所要在IIS上部署的网 ...
- centos7 下安装配置python3.6
一.首先,官网下载python3的所需版本. wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz 二.然后,解压缩文件> ...
- MonologFX最简demo,javafx外用dialog示例
参考blog:https://blogs.oracle.com/javajungle/entry/monologfx_floss_javafx_dialogs_for /* * To change t ...
- 学习C程序设计(一)第一节总览
1.程序设计面向的问题 一切可计算问题都可以用程序的方法解决.ps:这样程序与计算有关了 1.1程序设计的五个步骤: a.确定问题可以计算:(问题是可计算) b.建立问题的数学模型:(不懂) c.设计 ...
- java:根据利润表计算奖金所得
代码实现: public class Hello { public static void main(String srgs[]) { Lirun(100); Lirun2(100); } publi ...
- 【AtCoder】AISing Programming Contest 2019
本来以为是1199rated的..仔细一看发现是1999,所以就做了一下 这场涨分很轻松啊...为啥又没打 等pkuwc考完我一定打一场atcoder(咕咕咕,咕咕咕,咕咕咕咕咕咕咕~) 但是其实我思 ...
- BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1607 题意概括 给出n个数,每一个数字<1000000,对于每一个数,让你求剩余的n-1个数 ...