- Jetpack LiveData源码分析
xiangxiongfly915
#AndroidJetpack系列JetpackLiveData源码分析
文章目录JetpackLiveData源码分析前提源码分析注册订阅流程LiveData#observe()LifecycleRegistry#addObserver()ObserverWithState#dispatchEvent()LiveData#removeObserver()LiveData$LifecycleBoundObserver类LifecycleBoundObserver#sho
- vue3打包 error in node_modules/@types/node/stream/web.d.ts 错误解决办法
柒先生~
前端javascript开发语言
ue3项目打包的时候突然报错,错误如下ERRORFailedtocompilewith1error14:13:57errorinnode_modules/@types/node/stream/web.d.ts:469:56TS1005:'?'expected.467|//IfReportingObservercheckisremoved,thetypeherewillformacircularre
- RNX 3.05 观测文件解释
记得往前走
gnssrnx
头文件3.05OBSERVATIONDATAM(MIXED)RINEXVERSION/TYPEBNC2.13.0rtproc20221231235943UTCPGM/RUNBY/DATEgfzrnx-1.16-8177FILEMERGE20230525032832UTCCOMMENTDUND00NZLMARKERNAME50212M003MARKERNUMBERLINZOBSERVER/AGENC
- 【React】MobX
小秀_heo
React及其周边生态react.js前端前端框架
概述mobx实现像vue一样声明式的修改数据,我们在项目中直接使用mobx+mobx-react。mobxjs/mobx-react:ReactbindingsforMobX(github.com)https://zh.mobx.js.org/the-gist-of-mobx.htmlstate数据action动作derivation派生computedobserver监听变化,包裹的React组
- Rxjava2你应该懂的源码,其实并不难(二)
kwbsky
接上篇继续。一、线程切换observeOnObservable.just("1").subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(observer)我们知道,当调用observeOn之后,后面执行的代码都将切换到他指定的线程,除非再次调用observeOn切换其他线程。上源码:@Ch
- Unity3d学习笔记
明月海子
Mecanin动画系统.pngNavigation导航系统.pngShader渲染基础.png面向对象六大原则.png策略模式Strategy.png工厂模式Factory产品工厂.png观察者Observer.png结构设计模式总结.png模板方法模式TemplateMethod.png适配器模式Adapter.png外观模式Facade.png职责连模式ChainofResponsibilit
- 在js中观察者模式讲解
Code_Geo
javascript观察者模式前端
在JavaScript中,观察者模式(ObserverPattern)是一种设计模式,允许一个对象(被观察者,Subject)维护一个依赖它的对象列表(观察者,Observer),并在它自身状态发生变化时自动通知这些观察者。观察者模式的典型使用场景包括事件系统、数据绑定和实时更新等情况。一、观察者模式的基本结构:1、Subject(被观察者):管理多个观察者的列表,并提供注册、注销和通知功能。2、
- Python27_观察者模式
jxvl假装
classObserver(object):"""观察者。个人理解:订阅者,即订阅主题的人"""def__init__(self,name):self.name=namedefupdate(self,msg):print(self.name+"收到信息:"+msg)classSubject(object):#主题类"""订阅者,一些供人订阅的主题"""def__init__(self):self.
- 观察者模式
榴月~
Java观察者模式java
在观察者设计模式中,一个对象(被观察者)维护一系列依赖于它的对象(观察者),当被观察者的状态发生变化时,它会通知所有的观察者。使用观察者模式可以实现解耦,被观察者不需要关心观察者的具体实现,观察者只需注册到被观察者即可。场景描述:我们可以将一个气象站作为"被观察者"(WeatherStation),它会定期检测温度、湿度和气压。多个显示面板作为"观察者"(Observer),当气象站更新天气信息时
- AAC---LiveData
None_Ling
LiveDataLiveData是一个与Activity/Fragment生命周期相关(lifecycle-aware)的Observer类。而这种相关性(awareness)会导致LiveData中的数据只有在Active状态下才会被回调。我们可以通过实现了LifeCycleOwner接口的对象来提供生命周期的感知。而LiveData这种方式会使得不用再考虑Activity或者Fragment的
- iOS输入框过滤表情,处理自带键盘无法输入
山有木枝壮
本片分两部分1、使用正则表达式过滤表情2、处理苹果自带键盘无法输入汉字问题先记录下,后面完善:overridefuncviewDidAppear(_animated:Bool){super.viewDidAppear(animated)NotificationCenter.default.addObserver(self,selector:#selector(self.textFieldEditC
- 设计模式(博客园精化集)
ziyeLoading
设计模式
《设计模式》(博客园精华集)转自:http://archive.cnblogs.com/a/1720782/在此非常感谢谢博主圣殿骑士WebClientSoftwareFactory系列(3):View-Presenter模式作者:TerryLee.NET设计模式(18):迭代器模式(IteratorPattern)作者:TerryLee.NET设计模式(19):观察者模式(ObserverPat
- 微信小程序中如何监听元素进入目标元素
_处女座程序员的日常
微信小程序js交互微信小程序小程序
Page({onLoad:function(){//如果目标节点(用选择器.target-class指定)进入显示区域以下100px时,就会触发回调函数。wx.createIntersectionObserver().relativeToViewport({bottom:100}).observe('.target-class',(res)=>{res.intersectionRatio//相交区
- 一种用于航天器姿态跟踪的新型角速度观测器(三)
beegreen
控制与信号处理动态规划数学建模
一种用于航天器姿态跟踪的新型角速度观测器(三)AnewangularvelocityobserverforattitudetrackingofspacecraftISATransactions130(2022)377–388DOI:10.1016/j.isatra.2022.03.025摘要:本文提出了一种基于收缩分析的新型航天器姿态跟踪角速度观测器。观测器在惯性参考系中通过估计惯性角动量来设计,
- 设计模式之观察者模式
200不是二百
观察者模式
观察者模式观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。当对象间存在一对多关系时,则使用观察者模式(ObserverPattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。创建了对象间的一种一对多的依赖关系,当一个对象状态改变时,所有依赖于它的对象都会得到通知并自动更新。主要解决
- 微信小程序自定义相机(React+Taro)
淑子啦
微信小程序数码相机react.js
1、index.tsximport{useState}from'react'import{View,Image,Camera}from"@tarojs/components";import{observer}from"mobx-react";import{AtButton}from'taro-ui'import"./index.scss";import{takePhote}from'@/commo
- 聊聊 OceanBase 资源管理
数据最前线
oceanbase数据库学习
OceanBase是分布式多租户架构数据库,其分布式集群从资源角度看可以分成集群、Zone、OBServer、资源池和租户等几个层次。今天我们从集群和资源两个层次梳理OceanBase资源管理相关的概念。OceanBase集群管理OceanBase集群包含若干个Zone,一个Zone内可包含若干台物理机,每台物理机只能隶属于一个Zone,同一个Zone内的物理机通常部署在相同的机房内。Zone内的
- Android --- livedata是粘性事件,什么叫粘性事件
梁同学与Android
Android项目开发笔记android
粘性事件是指在LiveData中,即使观察者(Observer)在数据发送之后注册,也能接收到之前发送的数据。这种机制允许先发送数据,然后再注册观察者,注册成功后,该观察者仍然可以接收到之前发送的数据,执行对应的观察动作。粘性事件的原理基于观察者模式,通过允许先触发更改被观察对象(即产生观察事件),再去注册观察者对象,从而实现了观察者与被观察者对象之间更加紧密的粘合。在LiveData中,粘性事
- 行为模式6.备忘录模式------文本的撤销和保存
臣妾写不来啊
23种设计模式备忘录模式
行为型模式模板方法模式(TemplateMethodPattern)命令模式(CommandPattern)迭代器模式(IteratorPattern)观察者模式(ObserverPattern)中介者模式(MediatorPattern)备忘录模式(MementoPattern)解释器模式(InterpreterPattern)状态模式(StatePattern)策略模式(StrategyPat
- Swiper插件之如何使用.swiper-pagination-bullet和.swiper-pagination-bullet-active快速修改自定义分页器样式
潇xiao雨未歇
基础笔记htmlcss前端
适用场景:希望将Swiper插件中分页器的默认样式(小圆蓝点),替换成自己的图片(小图标)解决方法:在初始化轮播图中配置监视器:observer:更改swiper的样式(隐藏/显示)或修改其子元素(添加/删除),Swiper会更新(重新初始化)并触发observerUpdate事件。observeParents:应用于Swiper的所有祖先元素。当Swiper的祖先元素发生变化时,例如show/h
- 微信小程序 - picker-viewer实现省市选择器
卡卡舅舅
微信小程序微信小程序
简介本文会基于微信小程序pickerviewer组件实现省市选择器的功能。实现效果实现代码布局{{item.name}}{{item.name}}js代码借助observers,监听provincecode的变化,实现cities的更新。Page({data:{provinces:[],cities:[],value:[0,0],provinceCode:0},onLoad(){varprovin
- 行为型设计模式-观察者(observer)模式
懂一点的陈老师
设计模式设计模式python开发语言
设计模式汇总:查看通俗示例想象一下你订阅了一个新闻网站,每当有重大新闻发生时,网站会立即向你发送通知。你不需要一直刷新网站,只需等待通知即可。这里,新闻网站就是观察者模式中的“主题”(Subject),而你作为订阅者就是“观察者”(Observer)。当新闻(即“主题”的状态)更新时,新闻网站会自动通知所有订阅者(观察者),这就是观察者模式的典型应用。通俗解释观察者模式是一种行为型设计模式,它定义
- 观察者模式解析:实现对象间的舞蹈同步!
疾风终究没有归途
设计模式观察者模式设计模式对象同步状态更新工作原理代码灵活性依赖关系
观察者模式(ObserverPattern)是一种行为型设计模式,允许对象在状态改变时通知多个依赖对象,并自动更新这些依赖对象的状态。观察者模式主要用于实现对象间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当这个主题对象发生变化时,它的所有观察者都会得到通知并自动更新。这样的模式常用于实现事件处理系统、在数据模型和相应的视图之间的同步等。以下是具体介绍:模式组成:主题(Subj
- 观察者模式(Observer Pattern)
dashalen
设计模式设计模式观察者模式
一.定义(一)观察者模式定义简介:观察者模式也叫做发布订阅模式,定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则其所有依赖于它的对象都会收到通知并自动更新。1.Subject被观察者定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。一般是抽象类或者实现类,仅仅完成作为被观察者必须实现的职责;职责管理观察者和通知观察者。2.Observer观察者观察者接收到消息后,都进行up
- C++设计模式4:发布-订阅模式
咩咩大主教
设计模式c++设计模式开发语言c语言发布订阅模式观察者模式监管者模式
主要关注对象的一对多的关系,也就是多个对象都依赖于一个对象,当该对象的状态发生改变时,其他对象都能够接受到相应的通知。假如有一个存有数据的对象,这个对象的数据产生了另外三个对象,一个曲线图对象,一个折线图对象,一个圆饼图对象,这时候,如果数据对象发生了改变,那么这三个对象应该及时收到相应的通知。#include#includeusingnamespacestd;classObserver{publ
- 23种设计模式之11种行为型模式
如意如意525
设计模式java
11种行为型设计模式行为型设计模式用于处理对象之间的职责、责任和算法的分配。以下是一些常见的行为型设计模式:策略模式(StrategyPattern):定义一系列算法,将它们封装成独立的策略类,使得它们可以互相替换而不影响客户端。观察者模式(ObserverPattern):定义一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知和自动更新。模板方法模式(Templ
- vue最早可以读取this的生命周期函数
youhebuke225
Vue基础知识redis数据库缓存
在Vue中,最早可以安全地读取到this(即Vue实例及其属性,如data、methods等)的生命周期函数是created。created钩子在实例创建完成后被立即调用。在这一步,实例已完成以下配置:数据观测(dataobserver)计算属性(computed)方法(methods)侦听器(watchers)此时,你可以访问到data、computed等属性,并且可以对它们进行操作。但是,由于
- C++观察者模式Observer
MatsumotoChrikk
C++设计模式观察者模式android
组件协作–(都是晚绑定的)----观察者模式为某些对象建立一种通知依赖的关系,只要这个对象状态发生改变,观察者对象都能得到通知。但是依赖关系要松耦合,不要太依赖。eg:做一个文件分割器,需要一个界面mainform。里面有文件路径,文件号。但是如果文件太大了,我想分割,想要一个进度条。依赖倒置原则:高层模块不能依赖底层模块。Bar上述这样就不可以,因为编译时依赖了,这样是违背依赖倒置的。怎么样重构
- 鸿蒙开发电话服务:【@ohos.telephony.observer (observer)】
爱桥代码的程序媛
鸿蒙开发学习笔录harmonyos鸿蒙开发鸿蒙OpenHarmony程序员电话服务移动开发
observer说明:本模块首批接口从APIversion6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。导入模块importobserverfrom'@ohos.telephony.observer'observer.on(‘networkStateChange’)on(type:‘networkStateChange’,callback:Callback):void;订阅网络
- Python watchdog
宇智波唐嫣
开发十年,就只剩下这套架构体系了!>>>#!/usr/bin/python# -*- coding: UTF-8 -*-# author : firefoxbug# E-Mail :
[email protected]# Blog : www.firefoxbug.netimport timefrom watchdog.observers import Observerfrom wat
- 312个免费高速HTTP代理IP(能隐藏自己真实IP地址)
yangshangchuan
高速免费superwordHTTP代理
124.88.67.20:843
190.36.223.93:8080
117.147.221.38:8123
122.228.92.103:3128
183.247.211.159:8123
124.88.67.35:81
112.18.51.167:8123
218.28.96.39:3128
49.94.160.198:3128
183.20
- pull解析和json编码
百合不是茶
androidpull解析json
n.json文件:
[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]
pull.xml文件
<?xml version="1.0" encoding="utf-8"?>
<stu>
<name>java
- [能源与矿产]石油与地球生态系统
comsci
能源
按照苏联的科学界的说法,石油并非是远古的生物残骸的演变产物,而是一种可以由某些特殊地质结构和物理条件生产出来的东西,也就是说,石油是可以自增长的....
那么我们做一个猜想: 石油好像是地球的体液,我们地球具有自动产生石油的某种机制,只要我们不过量开采石油,并保护好
- 类与对象浅谈
沐刃青蛟
java基础
类,字面理解,便是同一种事物的总称,比如人类,是对世界上所有人的一个总称。而对象,便是类的具体化,实例化,是一个具体事物,比如张飞这个人,就是人类的一个对象。但要注意的是:张飞这个人是对象,而不是张飞,张飞只是他这个人的名字,是他的属性而已。而一个类中包含了属性和方法这两兄弟,他们分别用来描述对象的行为和性质(感觉应该是
- 新站开始被收录后,我们应该做什么?
IT独行者
PHPseo
新站开始被收录后,我们应该做什么?
百度终于开始收录自己的网站了,作为站长,你是不是觉得那一刻很有成就感呢,同时,你是不是又很茫然,不知道下一步该做什么了?至少我当初就是这样,在这里和大家一份分享一下新站收录后,我们要做哪些工作。
至于如何让百度快速收录自己的网站,可以参考我之前的帖子《新站让百
- oracle 连接碰到的问题
文强chu
oracle
Unable to find a java Virtual Machine--安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案
作者:草根IT网 来源:未知 人气:813标签:
导读:安装64位版Oracle11gR2后发现启动SQLDeveloper时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\prod
- Swing中按ctrl键同时移动鼠标拖动组件(类中多借口共享同一数据)
小桔子
java继承swing接口监听
都知道java中类只能单继承,但可以实现多个接口,但我发现实现多个接口之后,多个接口却不能共享同一个数据,应用开发中想实现:当用户按着ctrl键时,可以用鼠标点击拖动组件,比如说文本框。
编写一个监听实现KeyListener,NouseListener,MouseMotionListener三个接口,重写方法。定义一个全局变量boolea
- linux常用的命令
aichenglong
linux常用命令
1 startx切换到图形化界面
2 man命令:查看帮助信息
man 需要查看的命令,man命令提供了大量的帮助信息,一般可以分成4个部分
name:对命令的简单说明
synopsis:命令的使用格式说明
description:命令的详细说明信息
options:命令的各项说明
3 date:显示时间
语法:date [OPTION]... [+FORMAT]
- eclipse内存优化
AILIKES
javaeclipsejvmjdk
一 基本说明 在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人
- 关键字的使用探讨
百合不是茶
关键字
//关键字的使用探讨/*访问关键词private 只能在本类中访问public 只能在本工程中访问protected 只能在包中和子类中访问默认的 只能在包中访问*//*final 类 方法 变量 final 类 不能被继承 final 方法 不能被子类覆盖,但可以继承 final 变量 只能有一次赋值,赋值后不能改变 final 不能用来修饰构造方法*///this()
- JS中定义对象的几种方式
bijian1013
js
1. 基于已有对象扩充其对象和方法(只适合于临时的生成一个对象):
<html>
<head>
<title>基于已有对象扩充其对象和方法(只适合于临时的生成一个对象)</title>
</head>
<script>
var obj = new Object();
- 表驱动法实例
bijian1013
java表驱动法TDD
获得月的天数是典型的直接访问驱动表方式的实例,下面我们来展示一下:
MonthDaysTest.java
package com.study.test;
import org.junit.Assert;
import org.junit.Test;
import com.study.MonthDays;
public class MonthDaysTest {
@T
- LInux启停重启常用服务器的脚本
bit1129
linux
启动,停止和重启常用服务器的Bash脚本,对于每个服务器,需要根据实际的安装路径做相应的修改
#! /bin/bash
Servers=(Apache2, Nginx, Resin, Tomcat, Couchbase, SVN, ActiveMQ, Mongo);
Ops=(Start, Stop, Restart);
currentDir=$(pwd);
echo
- 【HBase六】REST操作HBase
bit1129
hbase
HBase提供了REST风格的服务方便查看HBase集群的信息,以及执行增删改查操作
1. 启动和停止HBase REST 服务 1.1 启动REST服务
前台启动(默认端口号8080)
[hadoop@hadoop bin]$ ./hbase rest start
后台启动
hbase-daemon.sh start rest
启动时指定
- 大话zabbix 3.0设计假设
ronin47
What’s new in Zabbix 2.0?
去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:
:: Performance improvements::Trigger related da
- http错误码大全
byalias
http协议javaweb
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1)1xx:信息,请求收到,继续处理
2)2xx:成功,行为被成功地接受、理解和采纳
3)3xx:重定向,为了完成请求,必须进一步执行的动作
4)4xx:客户端错误,请求包含语法错误或者请求无法实现
5)5xx:服务器错误,服务器不能实现一种明显无效的请求
- J2EE设计模式-Intercepting Filter
bylijinnan
java设计模式数据结构
Intercepting Filter类似于职责链模式
有两种实现
其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下:
package com.ljn.filter.custom;
import java.util.ArrayList;
- 修改jboss端口
chicony
jboss
修改jboss端口
%JBOSS_HOME%\server\{服务实例名}\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml
中找到
<!-- The ports-default bindings are obtained by taking the base bindin
- c++ 用类模版实现数组类
CrazyMizzz
C++
最近c++学到数组类,写了代码将他实现,基本具有vector类的功能
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
template<class T>
class Array
{
public:
//构造函数
- hadoop dfs.datanode.du.reserved 预留空间配置方法
daizj
hadoop预留空间
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
 
- mysql远程访问的设置
dcj3sjt126com
mysql防火墙
第一步: 激活网络设置 你需要编辑mysql配置文件my.cnf. 通常状况,my.cnf放置于在以下目录: /etc/mysql/my.cnf (Debian linux) /etc/my.cnf (Red Hat Linux/Fedora Linux) /var/db/mysql/my.cnf (FreeBSD) 然后用vi编辑my.cnf,修改内容从以下行: [mysqld] 你所需要: 1
- ios 使用特定的popToViewController返回到相应的Controller
dcj3sjt126com
controller
1、取navigationCtroller中的Controllers
NSArray * ctrlArray = self.navigationController.viewControllers;
2、取出后,执行,
[self.navigationController popToViewController:[ctrlArray objectAtIndex:0] animated:YES
- Linux正则表达式和通配符的区别
eksliang
正则表达式通配符和正则表达式的区别通配符
转载请出自出处:http://eksliang.iteye.com/blog/1976579
首先得明白二者是截然不同的
通配符只能用在shell命令中,用来处理字符串的的匹配。
判断一个命令是否为bash shell(linux 默认的shell)的内置命令
type -t commad
返回结果含义
file 表示为外部命令
alias 表示该
- Ubuntu Mysql Install and CONF
gengzg
Install
http://www.navicat.com.cn/download/navicat-for-mysql
Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html
Step2:进入下载目录,解压压缩包:tar -zxvf navicat11_mysql_en.tar.gz
- 批处理,删除文件bat
huqiji
windowsdos
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
- 跨浏览器兼容的HTML5视频音频播放器
天梯梦
html5
HTML5的video和audio标签是用来在网页中加入视频和音频的标签,在支持html5的浏览器中不需要预先加载Adobe Flash浏览器插件就能轻松快速的播放视频和音频文件。而html5media.js可以在不支持html5的浏览器上使video和audio标签生效。 How to enable <video> and <audio> tags in
- Bundle自定义数据传递
hm4123660
androidSerializable自定义数据传递BundleParcelable
我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity
把数据放到Intent
- C#:异步编程和线程的使用(.NET 4.5 )
powertoolsteam
.net线程C#异步编程
异步编程和线程处理是并发或并行编程非常重要的功能特征。为了实现异步编程,可使用线程也可以不用。将异步与线程同时讲,将有助于我们更好的理解它们的特征。
本文中涉及关键知识点
1. 异步编程
2. 线程的使用
3. 基于任务的异步模式
4. 并行编程
5. 总结
异步编程
什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程。通常情况下,C#程序
- spark 查看 job history 日志
Stark_Summer
日志sparkhistoryjob
SPARK_HOME/conf 下:
spark-defaults.conf 增加如下内容
spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress true
spark-env.sh 增加如下内容
export SP
- SSH框架搭建
wangxiukai2015eye
springHibernatestruts
MyEclipse搭建SSH框架 Struts Spring Hibernate
1、new一个web project。
2、右键项目,为项目添加Struts支持。
选择Struts2 Core Libraries -<MyEclipes-Library>
点击Finish。src目录下多了struts