jfinal 与JSP的传值问题

咖啡不加水 发布于 2016/01/31 14:25
阅读 1K+
收藏 0

发起代码:

==========================================

function showchart(value,text){
  var mkid='<%=id%>';
  var sheetid='<%=sheetid%>';
  $.get("chart/ChartShow",{"flag":'new',"value":value,"text":text,"mkid":mkid,"sheetid":sheetid},
  function (e){
  window.open("./echart/echartmain.jsp");  
  //打开在线曲线
 
 
  });
  
  }


========================================

后端代码

=========================================

public class chartControlle extends Controller{
public void index(){
System.out.println("The is My new jfinal WEB APP");
renderText("");
}

public void ChartShow(){
String flag=getPara("flag");
//提交查询(最新曲线,静态)
    if (flag.equals("new")){
            String value=getPara("value");//字段名
            String text=getPara("text");//曲线名称
            String mkid=getPara("mkid");
            String sheetid=getPara("sheetid");
            this.setAttr("chart_name",text);
            setAttr("chart_nowdata","ddd");
            System.out.println("chart_name="+getAttr("chart_name"));
    }
this.setAttr("chart_name",flag);
render("/echart/echartmain.jsp");
}

}

===============================================

前端代码

================================================

<%@ page language="java" import="java.util.*,bbsys_base.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";


%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>在线曲线</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->


  </head>

<div>
  ${chart_name}
  </div>  
  </body>
 
</html>

============================================================
问题:



  1. 前端代码中为什么该值( ${chart_name})没有输出 ?
  2. 后端代码中的的render("/echart/echartmain.jsp");能否省略?我看DEMO中好像有省的,但是我自行删除就报错了
  3. setAttr的作用范围是多少?是不是该项目的所有JSP页面中都可以调用?作用时间是多少?
  4. 我该如何去查询setAttr是否已传到JSP中呢?


加载中
0
JFinal
JFinal

1:是否设置了ViewType为JSP?因为jfinal默认类型为freemarker,所以使用jsp时需要这样设置一下:me.setViewType(ViewType.JSP)

2:render(view)方法可以省略,只需要满足这个规则即可:view = viewPath + methodName + ".jsp"

3:setAttr在底层仅仅就是调用了一下HttpServletRequest.setAttribute(key, value),而在jsp中是可以直接使用内置的request对象的,也即在jsp中页面中可以随意使用request.getAttribute(...) 获取在action中 setAttr(...)过来的数据。setAttr 的作用范围是本次request、reponse这一个回合

4:只要是通过setAttr(...),并且没有在后续调用过 removeAttr(...) 即必定传到了 jsp页面之中

   前面两点在 jfinal 用户手册中有详细的说明,建议先仔细看一遍手册再进行开发,少走很多弯路,手册仅 30页左右,并且绝大分部是代码实例和图示,一个小时能看完,在此下载手册:http://www.jfinal.com

咖啡不加水
1、已经设置成jsp视图 2、如果省略的话,具体要怎么写? 3、现在还是么有值,该怎么排除 4、手册看了,野路子,有没有进阶的教程、书籍介绍? 5、感谢您的回复![13]
返回顶部
顶部