Browse Source

jfinal 1.9 release ^_^

James 11 years ago
parent
commit
03a3c5a2bd

+ 8 - 4
src/com/jfinal/plugin/activerecord/ModelRecordElResolver.java

@@ -30,6 +30,8 @@ import javax.servlet.jsp.JspFactory;
 @SuppressWarnings("rawtypes")
 public class ModelRecordElResolver extends ELResolver {
 	
+	static JspApplicationContext jspApplicationContext = null;
+	
 	/**
 	 * Compatible for JspRender.setSupportActiveRecord(true);
 	 * Delete it in the future
@@ -40,9 +42,12 @@ public class ModelRecordElResolver extends ELResolver {
 		ModelRecordElResolver.isWorking = isWorking;
 	}
 	
-	public static void init(ServletContext servletContext) {
-	    JspApplicationContext jspApplicationContext = JspFactory.getDefaultFactory().getJspApplicationContext(servletContext);
-	    jspApplicationContext.addELResolver(new ModelRecordElResolver());
+	public synchronized static void init(ServletContext servletContext) {
+	    JspApplicationContext jac = JspFactory.getDefaultFactory().getJspApplicationContext(servletContext);
+	    if (jspApplicationContext != jac) {
+	    	jspApplicationContext = jac;
+	    	jspApplicationContext.addELResolver(new ModelRecordElResolver());
+	    }
 	}
 	
 	public static void init() {
@@ -121,4 +126,3 @@ public class ModelRecordElResolver extends ELResolver {
 }
 
 
-

+ 9 - 0
src/com/jfinal/render/JspRender.java

@@ -36,6 +36,15 @@ public class JspRender extends Render {
 	
 	private static boolean isSupportActiveRecord = false;
 	
+	static {
+		try {
+			com.jfinal.plugin.activerecord.ModelRecordElResolver.init();
+		}
+		catch (Exception e) {
+			// System.out.println("Jsp or JSTL can not be supported!");
+		}
+	}
+	
 	@Deprecated
 	public static void setSupportActiveRecord(boolean supportActiveRecord) {
 		JspRender.isSupportActiveRecord = supportActiveRecord;