- odoo 开源版/企业版/社区版的对比分析
lijianhua_9712
odooodoo
odoo的三个版本1开源版开发者odoo限制功能版本优点功能稳定,bug少缺点限制功能,进销存勉强可用2企业版开发者odoo中型企业功能优点功能稳定,bug少缺点授权费用昂贵3社区版开发者社区(1700余名专家)大型企业功能优点功能丰富,社区不受odoo公司控制,社区开发者基本都是资深erp技术专家,增加了大量细致功能缺点存在一些bug为什么用odoo社区版,不用odoo企业版呢1odoo企业版是
- ODOO不同版本与平台选择
chouchengyin2080
c#操作系统运维
1.10.0vs11.0vs8.0截至2017年底,最新的ODOO发布版为ODOO11.0,但功能上有一定精简(去除财务模块,去除工作流支持),技术上变动较大(代码逐步迁移至Python3,前端框架改写得抽象)。所以如果是从生产使用的角度来讲,ODOO10.0是当前最好选择,因为其更稳定,第三方模块也更多更全面。而如果是ODOO技术爱好从业者,则逐步迁移至ODOO11.0也有必要,因为其底层技术架
- 使用docker调试odoo
JackyBeauty
odoo14
使用VisualStudioCode(VSCode)的DevContainers进行Odoo开发和调试是一个高效的方法,尤其是当你希望在一个清洁且一致的开发环境中工作时。以下是设置和配置DevContainer以在Docker环境中单步调试Odoo系统的步骤:###步骤1:准备Docker环境确保你的机器上安装了Docker和VSCode。同时安装VSCode的“Remote-Containers
- odoo SyntaxWarning: invalid escape sequence ‘\w‘
信息化未来
odoo错误分析odoo17python开发语言
odooSyntaxWarning:invalidescapesequence'\w'在Python中,字符串中的反斜杠\是一个特殊字符,用于引入转义字符,比如\n表示换行,\t表示制表符等。当你在字符串中使用了\w,Python解释器会尝试将其识别为一个转义字符,但实际上\w并不是一个有效的Python转义字符,因此会引发SyntaxWarning:invalidescapese
- Odoo软件二次开发:Odoo支付与电子商务模块开发
kkchenjj
工业软件二次开发ERP开发工业软件ERP开发语言
Odoo软件二次开发:Odoo支付与电子商务模块开发Odoo环境搭建与配置安装Odoo框架在开始Odoo的二次开发之前,首先需要在一个支持的环境中安装Odoo框架。Odoo支持多种操作系统,包括Linux、Windows和macOS。本节将详细介绍如何在UbuntuLinux上安装Odoo。系统要求Ubuntu18.04LTS或更高版本Python3.6或更高版本PostgreSQL10或更高版本
- 在odoo中使用attrs的动态表单元素
StackSurfer
python
在Odoo中,attrs属性用于动态修改表单视图中字段的属性(如隐藏、只读或必填)基于其他字段的值。它主要用于视图XML中定义表单视图时。attrs属性采用一个字典格式,其中键是要修改的属性(如invisible、readonly、required),值是一个域表达式(domainexpression),用来决定何时修改这些属性。下面是一个使用attrs的示例,我们将创建一个简单的Odoo模块视图
- odoo继承已有视图操作
StackSurfer
python
Odoo中,tree视图和form视图是两种主要的视图类型,它们分别用于展示记录列表和详细记录表单。在Odoo中,视图继承允许开发者在不修改原始视图的基础上增加或改变视图的结构或外观。这是通过创建包含继承指令的XML文件来实现的。Tree视图继承Tree视图显示记录的列表。要继承一个tree视图并修改它,需要创建一个XML文件,并使用inherit_id属性来指定你想要继承的原始视图的外部ID。例
- odoo之数据同步
無悔一叶障目
将其他数据库上的数据同步到odoo数据库内,生成报表,随时更新数据,并对更新的数据进行对比分析,分析详情:精确到某行,某个字段,由xx变为yy值……不多说上图片:简单版(原版动态图太大了,我再想办法方倒其他地方)
- odoo 内置方法
葡萄柚子茶
==========模型层面==========一:_table_exist检查该模型对于的数据库表是否存在,是则返回1,否则返回
[email protected]_crdef_table_exist(self):pass==========模型记录层面==========二:create(self,vals)记录的创建函数,一般情况下,是根据视图传过来的dict对象,生成模型记录。我们可以重写create
- 学Odoo,就得Do (00 Win10下的开发调试环境)
RED_HILL_TEA
Odoo是目前业界首屈一指的开源ERP产品,Odoo以前叫OpenERP,是比利时OdooS.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块。Odoo适用于各种规模的企业应用。Odoo功能模块涵盖了各方面的企业应用:CRM、订单处理(销售订单和采购订单)、电子商务、MRP、财务、库存、门店零售、项目管理等等。Odoo的一个口号
- 解决ubuntu22卡死问题
加菲大叔
odoo运维ubuntu
解决ubuntu22卡死问题最近用ubuntu2204做odoo开发,经常卡死,不清楚是什么原因,后来无意中发现pycharm占了50%内存(公司电脑,一共8G),然后看了一下交换分区,总共2G(默认的),使用率100%,卡死的时候硬盘灯狂闪,大概知道原因了,内存太少,只能用交换分区,没想到ubuntu22默认设置的交换分区才2G,好吧先把交换分区增加到8G,看看还会不会出现卡死的情况:查看当前内
- K8S容器挂了后一直重启但不成功原因及解决
1h1h1h1h1
kuberneteskubernetes容器云原生linux运维k8s
K8S容器挂了后一直重启但不成功原因及解决背景:应用迁移K8S后,因为PODOOM挂了后,会进行重启,但一直在重启,重启多次都不成功,且应用无报错日志。其他K8S上应用挂了后会自动重启成功。原因:健康检查配置的livenessProbe和readinessProbe配置的initialDelaySeconds太小,应用启动成功所需时间比配置的长,导致POD重启了initialDelaySecond
- K8S容器挂了后重启状态正常,但应用无法访问排查处理
1h1h1h1h1
kuberneteskubernetes容器云原生
K8S容器挂了后重启状态正常,但应用无法访问排查处理背景:应用迁移K8S后因PODOOM挂了后重启,集群上POD状态正常,但应用无法访问。排查:查看应用日志,是启动时调用特权账号管理系统超时,导致连接数据库失败。但tomcat正常启动,配置的http健康检查页面是放在tomcat里的,而非应用的页面。所以K8S健康检查成功,但实际应用未启动成功。解决:临时方案:手动重启,再调用特权账号管理系统时连
- 出国一趟没买voodoo的蛇毒面膜你就白来了!
有一个姑
闺蜜上周去了Tai国疯玩了一个星期,回来竟然发现她皮肤不仅没晒黑,还好了不止一个档次,说好的“白着出去,黑着回来呢?”在一年四季艳阳高照的Tai国旅游,皮肤没晒黑,反而变得更好了?闺蜜看我一脸疑惑,窃喜地说出了秘密:“刚去Tai国的时候结识了一位当地的朋友,她看我皮肤不好,向我推荐了风靡Tai国的Voodoo蛇毒面膜,这款面膜感觉会魔法啊,我每天白天出去疯玩,晚上睡觉前敷上Voodoo蛇毒面膜睡觉
- 【TOODOO趣享】《青春有你2》你看的是黑料,我看到的是特立独行的女孩们!
TOODOOS
《青春有你2》节目在还没有开始播出之前就已经得到了超多网友的关注。如今正式播出,其播放量简直让人咋舌。而一档节目的吸睛与否,必然跟其中的选手或者嘉宾有关。对《青春有你2》来说,还真有那么一些话题度极高的选手。其中一位就是上官喜爱。▲图片来自网络(右一上官喜爱)上官喜爱是典型的中性帅气风,比起清一色甜甜的少女风,她显得与众不同。这令人想起当年101中的Yamy、Sunnee、王菊。Yamy拥有一双化
- 微信支付宝当面付集成
飞鹰雪玉
这两天公司的项目有一个是集成微信支付和支付宝支付到项目中,对应的都是门店扫码枪扫码。顾客展示自己的二维码给店员,店员用扫码枪扫描顾客出示的二维码,然后将条码和订单信息一起发送到后台处理。最后完成付款。微信和支付宝的后台我用的都是java,前端项目是用的odoo开源项目,我需要在前端将微信支付和支付宝支付集成到odoo的pos模块里面(这块挺折磨人的。。。)。不多说了,去解决问题。微信支付支付模式在
- Odoo-QWeb知识点总结
JTOOP
OdooQWebodoo
文章目录QWeb一客户端QWeb1JavaScript表达式1.1标示1.2转义字符:1.3JavaScript函数2动态替换属性2.1示例2.1.1根据截止日期来动态变换颜色2.1.2动态方式显示title2.1.3动态改变src属性2.1.4通过字典/队列的形式动态的赋值3循环指令3.1示例3.2辅助变量4条件指令4.1示例5渲染值6设置变量值6.1示例7复用模板7.1示例7.2对复用模板进行
- odoo javascript参考(三)
姜振建 15954039008
odoojavascript前端vue.js
Widget指南id属性在程序或模块中应尽量避免使用,id限制了组件的可重用性,并往往使代码更脆弱.如果确实需要,(如第三方类需要),id的设置如下:this.id=_.uniqueId('my-widget-');避免使用像“content”或“navigation”的类名,因为大家都有可能这样用,最好的办法是前面加个前缀,如jzj-xxxx应避免使用全局选择器。因为一个组件可能在一个页面中使用
- odoo中的视图标签(自用)
程序猿-张益达
Pythonodoopython
前端常用视图标签:学习了一段时间odoo,从中学习到了哪些标签是比较重要的,以及经常使用到的便签属性。field标签包括常用的属性有name、string、placeholder、widget、domain、attrs、options等1.name属性name属性值是model,关联的是模型名称,表示该视图关联的模型,对应到数据库就是数据库中的某张表,模型中放的字段就是对应到数据库表中的字段。na
- odoo看板
「已注销」
odoopython
Odoo12开发之看板视图和用户端QWeb前言:Qweb是odoo使用的模板引擎,基于xml来生成HTML片段和页面.通过Qweb可生成丰富的看板视图,报表和cmx一·了解看板两种布局#1.卡片列表#2.组织成不同的卡片二·设计看板视图优先级、看板状态和颜色看版中其他字段:priority#让用户组织他们的工作项,标记什么应优先处理kanban_state#标记是否应移向下一阶段或因某种原因原地不
- ODOO--OWL简介
姜振建 15954039008
odoojavascript前端前端框架
1.什么是OWLOWL是Odoo创建的前端开发框架。这是他们在最新版本的Odoo(版本14)中引入的一个框架,以使前端代码更好一些。如果您熟悉其他前端框架,如React、Vue、Angular、Backbone等,那么您将很快了解OWL。它遵循许多相同的模式和想法。如果您不熟悉前端框架的概念,那么最近的框架都围绕着消除过去通常使用javascript完成的琐碎事务性工作的想法展开。我相信您熟悉数百
- odoo13学习 odoo的视图
zhangliang_852469
odoo
1.odoo的基本视图结构基本视图通常共享下面定义的公共结构。占位符用全大写表示。NAMEMODEL2.字段视图对象公开许多字段。它们是可选的,除非另有说明。name—>char:只有在从某种类型的列表中查找视图时,才可用作视图的助记符/描述。model—>char:模型链接到视图,如果适用的话。priority—>Integer:当视图被(model,type)请求时,将返回与模型和类型匹配且优
- Odoo 自定义Widgets 基础教程(章节1)
weixin_33836223
前端后端javascriptViewUI
大家好,此次,我们主要讲解Odoo中的Widgets。网上、论坛里很多提及Widget的文章,但很少说Odoo自定义Widget是如何实现的,这一直是大家所苦恼的地方。本章,将对Odoo中的Widget进行基础讲解。首先,Widget【挂件】产生的目的,是为了方便后端开发人员在不熟悉JavaScripts的情况下,能快速地实现前端视图展示。我们来看看Widget所在的目录:/addons/web/
- odoo13 订单模板设置_Odoo 13开发者文档:视图
weixin_39923572
odoo13订单模板设置
通用结构视图对象暴露一些字段,除非指定它们是可选的。name(必传)仅在查找某个列表中内容时用作视图的助记符/描述model若适用为关联到视图的模型priority客户端程序可通过id或by(model,type)请求视图。对于后者,会搜索所有相应类型及模型的视图,并且会返回priority值最小的那个(它是“默认视图).priority还在视图继承时定义应用的排序arch视图布局的描述group
- Odoo QWeb
weixin_30655219
javascriptjavapythonViewUI
1.web模块注意,OpenERP模块中web部分用到的所有文件必须被放置在模块内的static文件夹里。这是强制性的,出于安全考虑。事实上,我们创建的文件夹CSS,JS和XML,仅仅是一个习惯。static文件夹oepetstore/static/css/petstore.css是我们的CSS文件。oepetstore/static/xml/petstore.xml是一个XML文件,将包含我们Q
- 【转载】odoo技术开发白皮书 第三部分 第三章 Widget
爱吃菜菜的小女孩
【转载】odoo技术开发白皮书javascript前端开发语言erp
转载:http://book.odoomommy.com/chapter3/README3.html第三章WidgetWidget是所有可视化部件的基类,提供了多种用来管理局部DOM的方法。其功能主要有如下几点:使用QWeb渲染页面生命周期管理和父子关系处理操作DOMHello,Widget我们先来看一个最简单的Widget示例:varMyWidget=Widget.extend({templte
- odoo前端开发widget
少奶奶的猪
javascript前端
重要信息:Odoo14与此前的Odoo版本在网页客户端上有些特别之处。它包含了两套框架用于维护Odoo后台的图形界面。第一种是传统的基于微件(小部件)的框架,第二种是基于模块化的现代框架,称之后Odoo网页库(OWL)。OWL是在Odoov14中新引入的UI框架。两者都使用QWeb模块作为结构,但在语法及框架运行方式上做出了很大的改变。虽然Odoo14使用了新框架OWL,但Odoo并没有在处处使用
- Odoo 12开发之后台视图 – 设计用户界面
信息化未来
0doo13
Odoo12开发之后台视图–设计用户界面一·菜单项#菜单项形成一个层级结构,最顶层结构#name是展示在用户界面中的菜单标题#action是点击菜单时运行的窗口#parenter是父级菜单项XMLID#sequence设置一个数字来在展示菜单项时进行排序.如sequence="10"#groups用来都好分割可访问菜单安全组的xmlID列表#web_icon菜单项的图标二·窗口操作(WindowA
- odoo自定义widget组件两种方式
宁致乐水
javascriptodoopython
odoo自定义一个widget方式一jscrossnow.define('your_module.custom_widget',function(require){"usestrict";constcore=require('web.core');constQWeb=core.qweb;const{useState,useRef}=owl.hooks;//方式1函数方式constAbstractF
- 用ipad 开启师生间的科学之旅
三门峡745沈莉红
参加勇气读书会第224天书名:杨晓哲的《五维突破》时间:2019年8月23日晚上9点到10点阅读内容:第四章《第三维度/工具立体》:“工具立体策略单”之精心选择丰富多彩的APP第131页到138页读书笔记分享2.用ipad开启师生间的科学之旅实用的物理仿真:Algodoo简易的机械搭建:ForceEffectM强大的数学应用:WolframAlpha简单的手写计算机:Calculator直观的人体
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include