struct2
文章平均质量分 55
FixedStarHaHa
这个作者很懒,什么都没留下…
展开
-
(4)ResultType
<package name="ResultType" namespace="/r" extends="struts-default"> <action name="login" class="com.action.UserAction" > <result>/login.jsp</result> </action> <!-- result元素定义中,可原创 2017-11-06 19:12:17 · 189 阅读 · 0 评论 -
(2)简单体验---helloworld、namespace简单解读、Action简单解读
一、为什么用struct2 设计模式就是将简单的问题复杂化,这样设计的好处是扩展性。 struct2经过structfilter中转,才能确定是哪个页面(展现),这样就可以将请求结果(视图),这样就将请求和展现分离开,可以方便视图的改变(只需在struct2中配置应该去哪个页面即可) struct2就是解决将请求和展现分隔开 二、配置 ①引入jar包 下载struct2教程:ht原创 2017-11-06 16:09:41 · 295 阅读 · 0 评论 -
(1)struct简介
一、Servlet+JSP+JavaBean模型的缺点: ①流程凌乱:servlet在完成对用户请求的处理后,下一个页面时谁?如何跳转到 下一个页面?这些都是在servlet里面直接写代码来完成的。导致servlet既要处理请求,又要负责页面的流程,使得servlet功能不够单一,很难把握整个系统的页面流程,因为流程被分散到各个servlet里面了。 JSP设计模式↓↓ ②数据传递无序:在mo原创 2017-10-16 10:32:45 · 287 阅读 · 0 评论 -
(13)多条件查询(精确查询、模糊查询):动态拼接sql
这是在学生信息管理系统中遇到的,因为当时还没有学hibernate,所以访问数据库还是用JDBC。 需求:在查询用户信息时,可以指定如下查询条件,按照用户编号精确查询;按照姓名模糊查询(输入李可以查到所有姓李的用户);按照性别查询;按照年龄范围查询。 so查询页面如下: 按照上面的组合查询条件,这个对象,应该有一个编号(精确查询),一个姓名(模糊查询),一个性别(模糊查询),两个年龄(模糊原创 2017-11-07 11:47:20 · 10363 阅读 · 1 评论 -
(12)简单数据校验:addFieldError
index.jsp:相当于用户登录页面,这里进行简写 <body> 简单数据校验<a href="user/user_add!add?name='HAHA'">添加用户</a> </body>struct.xml<struts> <package name="user" namespace="/user" extends="struts-default">原创 2017-11-07 11:02:00 · 377 阅读 · 0 评论 -
(11)ExceptionMapping
当因为某些原因。发生异常时,可以对异常进行捕获,给用户友好的界面 下面的例子就是当Action发生异常后,因为result就是按照excute返回值来确定跳转到哪个页面的,所以在Action中可以返回success,这时异常抛给struct.xml,若写 exception-mapping 相当于接收到了异常,让这个mapping指向应该去哪个页面。在去往的异常页面中,可以友好的简单提示出错信息原创 2017-11-07 10:46:50 · 390 阅读 · 0 评论 -
(10)global-results、继承包
在一个网站中,通常用户操作失败等都会返回主页,或者共同的错误界面,若每个package下都写一个错误页面或者重返主页面,比较麻烦。当当前的action中没有对应的result时,则会找该包下global-result,若该包下没有,则会找父类的global-result 以此类推。 下面的例子: struct.xml<struts> <constant name="struts.dev原创 2017-11-07 10:22:03 · 226 阅读 · 0 评论 -
(9)Tag:property、set、push、bean、if、iterate、date
public class UserAction extends ActionSupport implements SessionAware, RequestAware{ private Map<String,Object> session; private User user=new User(); private Map<String,Object> request;原创 2017-11-07 09:57:36 · 213 阅读 · 0 评论 -
(7)OGNL2:RequestAware前端设置list、set、map中每个属性,如何填写,如何获取
public class UserAction extends ActionSupport implements SessionAware,RequestAware,ServletRequestAware{/* * ActionContext只是设置设置数据,获取数据 * struct2提供一种简单使用session的方式,使用SessionAware接口来访问存储于ActionContext原创 2017-11-07 08:32:01 · 329 阅读 · 0 评论 -
(6)OGNL--1:访问值栈中的普通属性、对象属性、普通方法、静态方法、自写set、map、list
OgnlAction//Dog 有属性name//Cat 有属性ptivate Dog friendpublic class OgnlAction extends ActionSupport{ //private User user; private User user=new User();//手动初始化,User必须含有带空参的构造方法 //user.xxx只有传,才会原创 2017-11-06 20:59:07 · 421 阅读 · 0 评论 -
(8)includeModues(在struct.xml中include其他的.xml)
在一个项目中,通常会有多个模块,struct.xml只有一个,会给编程造成不便,所以struct2可以引入其他的xxx.xml文件,来方便编程 比如有个login.xml,它也应该放在src根目录下,内容和struct.xml一样。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Softwa原创 2017-11-07 09:15:44 · 279 阅读 · 0 评论 -
(3)在Action中用request、session、application和前端简单数据、对象数据传递到后端
public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware { private Map<String, Object> request; private Map<String, Object> session; private Map原创 2017-11-06 17:08:12 · 2023 阅读 · 0 评论 -
(5)通配符
<struts> <constant name="struts.devMode" value="true" /><!-- 开启使用开发模式,详细错误提示,否则得重新部署,才能将修改改动--> <package name="user" namespace="/actions" extends="struts-default"> <!-- 若地址栏输入http://local原创 2017-11-06 20:12:33 · 318 阅读 · 0 评论 -
(14)文件上传
一、简介 struct2的文件上传其实是通过拦截器来实现的,只是该拦截器定义为默认的拦截器栈(defaultStack)中<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/> ...... <interceptor-ref name="fileUplo原创 2017-12-16 10:38:57 · 167 阅读 · 0 评论