|
|
@ -1,10 +1,15 @@ |
|
|
|
package com.fr.plugin.form.widget.core; |
|
|
|
package com.fr.plugin.form.widget.core; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.Formula; |
|
|
|
import com.fr.base.Parameter; |
|
|
|
import com.fr.base.Parameter; |
|
|
|
import com.fr.base.ParameterHelper; |
|
|
|
import com.fr.base.ParameterHelper; |
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
|
|
|
|
import com.fr.general.FRLogger; |
|
|
|
|
|
|
|
import com.fr.general.GeneralUtils; |
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.script.Calculator; |
|
|
|
import com.fr.script.Calculator; |
|
|
|
|
|
|
|
import com.fr.stable.StableUtils; |
|
|
|
|
|
|
|
import com.fr.stable.UtilEvalError; |
|
|
|
import com.fr.stable.script.CalculatorProvider; |
|
|
|
import com.fr.stable.script.CalculatorProvider; |
|
|
|
import com.fr.stable.xml.XMLPrintWriter; |
|
|
|
import com.fr.stable.xml.XMLPrintWriter; |
|
|
|
import com.fr.stable.xml.XMLableReader; |
|
|
|
import com.fr.stable.xml.XMLableReader; |
|
|
@ -38,15 +43,25 @@ public class URLSource extends RHIframeSource { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) { |
|
|
|
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) { |
|
|
|
try { |
|
|
|
String result = null; |
|
|
|
String result = TemplateUtils.render(url, calculator); |
|
|
|
if (StableUtils.canBeFormula(url)) { |
|
|
|
if (result != null && !result.toLowerCase().startsWith("http")) { |
|
|
|
try { |
|
|
|
result = "http://" + result; |
|
|
|
result = GeneralUtils.objectToString(calculator.eval(new Formula(url))); |
|
|
|
|
|
|
|
} catch (UtilEvalError u) { |
|
|
|
|
|
|
|
FRLogger.getLogger().error(u.getMessage(), u); |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
} else { |
|
|
|
} catch (Exception e) { |
|
|
|
try { |
|
|
|
return null; |
|
|
|
result = TemplateUtils.render(url, calculator); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
FRLogger.getLogger().error(e.getMessage(), e); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (result != null && !result.toLowerCase().startsWith("http")) { |
|
|
|
|
|
|
|
result = "http://" + result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|