jsp里根据传过来的值作为判断,设置input属性

<%String ispayoff = request.getParameter("ispayoff");%>

是<input type="radio" name="ispayoff1" value="yes" <%if(ispayoff.equals("yes")){%>checked
<%} %>/>
否<input type="radio" name="ispayoff1" value="no"<%else{ %>checked<%} %>
/>
我的java代码有错还是怎么了,报错
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 73 in the jsp file: XXXr.jsp
Syntax error, insert "}" to complete Block
73: 行为 <%} %>/>
麻烦帮我看下怎么解决啊,多谢了!

jsp中的值可以传入js中,在js中做判断,并且设置input的属性。
Java的变量值,理论上在js中是不能获取,但是可以通过间接的方式来获取。
提供两种思路供参考:
1、把java变量的值存在cookie中,js通过cookie去取;
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
var value= getCookie("cookie的name名");
2、把java变量的值赋值给页面中<input type="hidden"/>的value,通过js去取;
var value=document.getElementById("hidden的ID").value;

3、根据value的值动态设置input的属性即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-10
<%if(ispayoff.equals("yes")){out.print("checked);
} %>反之一样 ,你的源代码报错是因为<%if(ispayoff.equals("yes")){%>checked
<%} %>/>,你这样,程序怎么知道checked是什么东西,变量?你又没有声明追问

还是不行啊,就算把java代码单独拿出来也报错:
An exception occurred processing JSP page,
是不是少什么标签啊,

追答

你的代码就是错的,你拿到哪里都一样,你那个checked是什么东西,程序怎么知道??

追问

checked是JSP控件的属性

追答

你想的是满足当前条件时,单选按钮选中,你这里要给单选按钮加一个checked属性是对的,但是你直接写一个checked是什么意思?满足条件,应该是在当前位置输出一个checked字符串,这样页面才能识别,你直接在那里放一个checked,无论是java还是html都不知道那是个什么东西

追问

我就是说按照你说的输出checked字符串也还是不行啊,还报错:An exception occurred processing JSP page,很困惑啊~

追答

其他地方有错,再看看吧,打个断点总会吧

本回答被提问者采纳
第2个回答  2011-05-30
<%@ page language="java" import="java.util.*" 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>My JSP 'MyJsp.jsp' starting page</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">
-->
<%String ispayoff = "no"; //request.getParameter("ispayoff");%>
<script type="text/javascript">
function check(){
<%if(ispayoff.equals("yes")){%>
document.getElementById("yes").checked = true;
<%}
else{
%>
document.getElementById("no").checked = true;
<%
}
%>
}
</script>

</head>

<body onload = "check()">

是<input type="radio" name="ispayoff1" id="yse" value="yes"/>
否<input type="radio" name="ispayoff1" id="no" value="no" />

</body>
</html>

这个可以实现你想要的功能,我记得好像是html标签里不可以嵌套java代码吧!
不敢肯定,记得不是很清楚了。追问

那JS如何取到本页控件的值呢?

追答

document.getElementById("id").value

第3个回答  2011-05-30
<%String ispayoff = request.getParameter("ispayoff");%>

是 <input type="radio" name="ispayoff1" value="yes"
<%
if(ispayoff.equals("yes")){
%>checked
<%
}
%>/>
否<input type="radio" name="ispayoff1" value="no"
<%
if(ispayoff.equals("no")){
%>checked
<%
}
%>/>追问

你这个跟我那个貌似一样的啊!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网