日期:2014-05-17  浏览次数:20819 次

深入分析 jsp引入文件之关键
本帖最后由 bonlog 于 2013-01-16 16:55:13 编辑
在网站的多语言中常用此法子。
enlish.jsp

<%
String index="Home";
%>

chinese.jsp

<%
String index="主页";
%>

我们用index来引入enlish.jsp
<%if(lang.equals("chinese")){ %>//当session传来的lang是chinese但显示中文,英文就加载另一个文件
<%@include file="language/chinese.jsp" %>
<% }else{ %>
<%@include file="language/english.jsp" %>
<%} %>
<div id="header">
<div class="logo">
     <img src="image/logo.gif">
    </div><!--logo-->
    <div class="lang">
     <ul>
         <li><a href="javascript:void(0);">-中文版</a></li>
            <li><a href="">-English</a></li>
        </ul>
    </div><!--lang-->
<div class="clear"></div>

        <li><a href="index.html"><%=index %></a></li> //为何要报错啊?为何不能引用 啊 

//为何不能用啊?
但是这样写就可了,就是我不加if判断时,又可以了


<%@include file="language/chinese.jsp" %>

<div id="header">
<div class="logo">
     <img src="image/logo.gif">
    </div><!--logo-->
    <div class="lang">
     <ul>
         <li><a href="javascript:void(0);">-中文版</a></li>
            <li><a href="">-English</a></li>
        </ul>
    </div><!--lang-->
<div class="clear"></div>

        <li><a href="index.html"><%=index %></a></li>//此变量又可以使用了了


何人可以解释一番啊?

------解决方案--------------------
引用:
既然用了if那么就有可能不进入~~~
既然有可能不进入、那么你的index就有可能不被创建、没有被创建的变量怎么能够去使用它呢!
可以这样写
Java code?12345678910111213141516171819<%    String lang = "chinese";    String indexName = "";    if(lang.equals……


我的解释有问题!!!
只能这么说!
在if里面引入的jsp页面、那么它的变量只能算是局部变量!
局部变量是不能全局引用的!
------解决方案--------------------
引用:
引用:index页面定义一下index变量:
<%String index;%>

enlish.jsp,chinese.jsp
改一下:
<%index="Home";%>都定义了,你再读一边

就算不include,你定义的位置也是在if块里,变量只存在于if块,在if块外调用里面的变量除非是静态变量,否则是调不到的。
------解决方案--------------------
引用:
引用:
index页面定义一下index变量:
<%String index;%>

enlish.jsp,chinese.jsp
改一下:
<%index="Home";%>都定义了,你再读一边