Struts提供的类型转换有限,如果我们强行使用没有的类型转换,则会出现错误,以Date类型为例: org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet action threw exception java.lang.IllegalArgumentException: Cannot invoke com.tgb.struts1.TypeCovertActionForm.set…
先来看一下Struts1学习总结的思维导图,画的主要是Struts1中的重点和博客分布,如下所示: 系列博客的侧重点是: Struts1是什么? 为什么要使用它? 如何使用Struts1? Struts1源码分析 ? 以下是Struts1下博客链接: <层层递进Struts1(一)之由Servlet引入Struts> <层层递进Struts1(二)之Struts1简介及登录实例> <层层递进Struts1(三)之Struts组成> <层层递进Struts1(四)之…
这篇博客我们来说一下Struts的主要组成我们,通过前几篇博客,我们知道这个框架最重要的几个步骤:获取路径.封装表单.获取转向列表.转向逻辑处理.转向,与此对应的是:ActionServlet.ActionForm.ActionMapping.Action.ActionForward. ActionServlet 这个在上篇博客已经说明,可以访问< 预加载ActionServlet>. ActionForm ActionForm的主要作用是对表单数据进行封装,这个.NET开发中的实体类有些类似…
通过前面几篇博客,不知道大家有没有发现这个问题,虽然现在可以灵活控制跳转了,但是Action的数量还是比较多,如何既能保证跳转灵活,还能减少Action的数量?这就是我们这篇博客所说的DispatchAction,如其名,可以理解为“分发式Action”,使用它可以避免为每个Action创建一个类. 我们先来看一下实例. UserAction DispatchAction继承的是Action,它的特点就是把以前的多个Action合并为一个,当多个Action关联较大时,可以像这样放在一起,减少A…
这篇博客我们深入Struts框架执行部分源码,从ActionServlet的process函数开始,看一下其内在的执行过程. 流程图 以下流程图展示的是ActionServlet和RequestProcessor两个类用到的函数,如RequestProcessor调用的其它类的函数不再说明. 函数说明 我们选择几个重要的函数说明,其它函数则简单说明一下即可. ActionServlet process /** * <p>Perform the standard request processi…
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字段的删除过程中需不需要对数据进行备份 ''' 二.路由基础 ''' # url中含有四个参数 # url(regex, view, kwargs=None, name=None) # 正则路径 视图函数地址 默认关键字参数(了解) 路由别名 # r'index' 只要请求中含有index都可以匹配成…
<!-- 注册转化器 --> <mvc:annotation-driven conversion-service="conversionService" /> <!-- 自定义转换器 --> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> &l…
请求数据自动封装: 实现原理:使用了参数拦截器.struts-default.xml中 <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> 方式一:JSP页面表单数据填充到action中的属性 方式二:JSP页面表单数据填充到action的对象中的属性 方式一:JSP页面表单数据填充到action中的属性 注册页面:r…
层层递进-解开hdfs的面纱 1.hdfs是什么?它与普通服务器的文件系统有什么区别?它的特性有什么? 2.hdfs的工作原理是怎样的? 3.每台机器都单独启动有什么弊端?假设有1000台机器需要启动?该怎么解决呢? 4.hdfs配置与使用 5.利用javaApi充当客户端访问hdfs hdfs简介 hdfs就是一个分布式文件系统.简单说,就是一个“分鱼展”的大硬盘,跟普通的文件系统没什么区别,只是它有多台机器共同承担存储任务. 分鱼展指的是hdfs的特性分别指分布式.冗余性.可拓展. 普通服务…
Flask框架动态路由实现参数传递和Django框架有类似之处,但是相比于Django框架,Flask实现复杂的参数就需要自己自定义转换器来实现了,而不能向Django那样直接使用正则表达式 # 路由传递的参数默认当做string处理 # 这里指定int,尖括号中冒号后面的内容是动态的 @app.route('/user/<int:id>') def hello_itcast(id): return 'hello itcast {}'.format(id) Flask默认的转换器有以下几种 i…