`
文章列表

EL语言功能简介

    博客分类:
  • jsp
表达式语言(简化对JAVA代码的访问)Expression LanguageEL语言支持下列功能:1 精确访问存储变量:要输出作用域变量(用setAttribute存储在PageContext,HttpServletRequest,HttpSession或servletContext中的对象)saleItem,我们使用${saleItem}。2 bean属性简略记法:如要输出作用域变量Company的companyName属性,即getCompanyName方法的结果,我们使用${Company.companyName},而要访问是Complany的president属性的firstName那我 ...
There is no Action mapped for action name query. 一般是配置文件出错,或者是配置文件没有加载成功。
PropertyUtils.describe(bean);   PropertyUtils用于将javabean转换成map, 需要导入commons-beanutils.jar   和 commons-logging.jar
一个软件实体尽当尽可能少的与其他软件实体发生相互作用。          LoD表述:1.只与你直接的朋友通信;2.不要跟“陌生人”说话;3.每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。          想象一下,如果你现在有件事情非常重要,需要托关系才能办成,正好你的朋友的朋友可以帮你办成此事,但是你跟他确是陌生人,你是自己直接找呢?还是你托你的朋友去找他呢?想必我们大家有个脑子的都会让朋友去托人办成此事,而且如果朋友发现他的朋友办不成此事时,它会找另外一个朋友,或者朋友的朋友,总之,这也算是解耦合的关系。   在我看来,软件最重要的是可维护 ...
要尽量使用合成/聚合,而不是继承关系达到目的。          我不想去区分合成和聚合的区别。      通常如果你正在疑惑你该使用合成/聚合还是该使用继承时,我给你两种方法去判断:1.使用“Has-A”和“Is-A”来判断; 2.使用里氏代换原则来判断。
接口隔离原则(ISP) 应当为客户端尽可能小的单独的接口,而不要提供大的总接口。 总觉得这个和“单一职责原则”很像,很多人都把它们分开来讲,我不想把它们分的太清楚,就当一种说法对另一种说法的诠释好了。          这个原则比较简单易懂,就是应该把接口细粒化,单位化,避免接口污染。这样做的好处也很明显,接口就相当于对外界的承诺,你愿意对外界承诺的更多还是更少呢?其次,从美学上讲,这是一个污染问题,虽然不可能将美学纳入设计原则中,但是鄙人就喜欢做什么都干干净净、优雅利落,是个典型的完美主义者。          虽然ISP很好理解,但是实际中却常常被忽略,我经常会在公司里的代码中看 ...
依赖倒换原则(DIP) 要依赖于抽象,不要依赖于具体实现。DIP跟另一种说法含义相近:面向接口编程。          不知道何时有“层”这个说法,尽管你不会一眼看出XX软件分为几个层,但是确实这样的分层是有理由的,分开即耦合度降低,各司其责。你可以想想你所在公司的管理制度,那是一个金字塔模型。上层是高层管理人员,它们下发的命令直接影响最底层的工人,而最底层工人具体的工作内容并不影响上面的高层管理人员。商务逻辑层不能依赖于实现层,公司的架构师要负责商务逻辑层的维护,底层coder负责实现层,公司不可能将这种逻辑依赖于实现层,不仅仅是coder和架构师的素质差别,更重要的是这根本就是一个错 ...
任何基类可以出现的地方,子类一定可以出现(反过来不成立)。 这好像是描述了继承的一种原则,确实,在实现继承的时候,我们尽量考虑一下,java编译器能够检查语法上对里氏代换原则的支持,但是并不能支持商业逻辑上的LSP。考虑一个比较著名的长方形与正方形的问题,它能帮助我们更加深刻的理解LSP原则。          通常,在数学上来看,正方形确实属于长方形的一种,依照这种思维,正方形继承于长方形也是自然不过了。但是别忘了,长方形的定义是什么?长方形的高小于等于长方形的宽,下面是针对LSP原则的一段测试代码:      Public void resize(Rectangle r){ Whi ...
OCP原则就是在不修改源代码的情况下,设计方案能适应于各种扩展的需求(当然这是最理想的情况)。做到OCP有两点:抽象、对可变性封装。 实现开闭原则的关键就在于“抽象”。把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规定出所有的具体实现必须提供的方法的特征。作为系统设计的抽象层,要预见所有可能的扩展,从而使得在任何扩展情况下,系统的抽象底层不需修改;同时,由于可以从抽象底层导出一个或多个新的具体实现,可以改变系统的行为,因此系统设计对扩展是开放的。
你认为已经知道怎么制做表格了吧。当然,你已经了解 table、tr、td和th标签了,甚至还在你的口袋里装入了rowspan和colspan。你确实可以制做一个精美小巧的咖啡色三合板桌子(表格),但难道你不想做一个优雅稳固,上面有玻璃的,足以承受一头大笨象的宴会桌(表格)?表格行简直使表格列看起来很愚蠢。同样的工作,表格由行与行构建,让列感到十分沮丧。但是很幸运,colgroup和col标签来拯救热心的列了。这两个标签允许你定义表格列和尽你所需地样式化它们,对于你需要把列排成行或不同着色特别有用,如果没有它们,你需要样式化每一个单独的单元格。这是一个使用这些标签的例子:  Example ...
表单对于残障人士来说是最不容易使用的东西。导航和成文的内容是一种情况,而表单域和信息输入的跳跃又是另一回事儿。因此,为表单增加更多元素,使得表单更易用和更具亲和力未尝不是一个是好注意。标记每一个表单域都应该有一个自己的标记。label标签挑选出来,跟for属性一起与一个表单元素关联。 Example Source Code [www.52css.com] <form><label for="yourName">Your Name</label><input type="text" name="y ...
我们要在新窗口中打开链接传统的通常做法是在链接后面加target="_blank",我们采用过渡型的DOCTYPE(xhtml1-transitional. dtd)时没有问题,但是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个方法将通不过W3C的校验,会出现如下错误提示:  Example Source Code [www.52css.com] "there is no attribute target for this element(in this HTML version)" 原来在HTML4.01/X ...
  <form action="get.do" method="post" id="fi" name="fn">             username:<input type="text" id="username"/><br/>             password:<input type="password" id="password"/><br/>     ...
先得到Class对象,根据方法名和形参得到方法,如果有多个参数可以用 Class数组来处理。 Class[] CLASS_ARRAY = new Class[] { HttpServletRequest.class, HttpServletResponse.class }; Class classObject = Class.forName(classname); Method method = classObject.getMethod(methodName, CLASS_ARRAY); 得到方法名为methoName,且形参为 HttpServletRequest,Ht ...

jsp el表达式语言

    博客分类:
  • jsp
      JSP2.0之后提供的一个最主要的功能是支持表达式语言操作, 表达式语言允许页面制作人员使用简单语法访问组件,如: ${expr}在以上的语法中,expr 代表有效的表达式。必须注意,该表达式可以与静态文本混合,还可以与其他表达式结合成更大的表达式。 JSP EL 中的有效表达式有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一种: 文字JSP 表达式语言定义可在表达式中使用的以下文字: 文字 文字的值 Boolean true 和 false Integer 与 Java 类似。可以包含任何正数或负数,例如 24、-45、567 ...
Global site tag (gtag.js) - Google Analytics