1、EL表达式
在一个输出变量的位置上
${person.name}
等价于
<%= person.getName() %>
若是在输入位置上则等价于
<%= person.setName() %>
如果没有为属性设置存取方法则会导致无法访问。
另:EL表达式分为JSTL EL和JSF EL,前者以$开头,后者以#开头。
2、JSF
JSF默认使用faces-config.xml来配置页面的流程。
jsp中的语句:
faces-config.xml中的相应代码段
<from-view-id>设置起点页面。
<navigation-case>设置跳转条件和目的:
<from-action>匹配发生跳转位置的代码的action属性值,必须是JSF EL表达式。
<from-outcome>匹配上述EL表达式的返回值。
<to-view-id>设置跳转目的页面。
注:如果直接将action属性设置为字符串的话可以直接作为outcome进行匹配,但是不能设置action匹配条件,会报错。
3. Servlet中使用JPA
凡是对数据库有修改的(增加、更新、删除)都必须设置一个UserTransaction类的实体,调用该实体的begin方法和commit方法来开始/结束对数据库的修改。对数据库的修改操作只能发生在这两次调用之间。
单纯的读取数据库不需要使用UserTransaction类。
使用EntityManagerFactory.createQuery方法修改数据库时,需要使用Query.executeUpdate方法使修改生效,例如:
以上查询使用的是JPA-QL,字符串中可以设置JPA-QL变量,不过也要相应地调用对应方法来给变量赋值:
后者可读性更强,但是应该比前者要低。