<% uname=""+request.getAttribute("username"); %>
Эта переменная получит значение, только когда вы загрузите или обновите свою страницу.
Я полагаю, ваш поток страниц выглядит следующим образом.
Ваша первая страница с формой, и форма отправки будет вызывать функцию javascript как
<form name="users" method="post" onSubmit="returncheckCorrect()" action="Registeration.jsp">
, тогда ваш javascript проверит ваш ответ следующим образом:
<script type="text/javascript">
function returncheckCorrect() {
var x = document.getElementsByName("userName")
if (your condition) {
alert("Redirecting");
return true;
} else {
alert("Not Redirecting");
return false;
}
}
// return false; // lol, see why indentation is useful ?
</script>
затем (если (ваше условие == true)) ваш скрипт javaбудет перенаправлять на вторую страницу, где вы хотите получить значение в скриптлете, например
<% uname=""+request.getAttribute("username"); %>
Убедитесь, что ваш код работает таким образом.
Ниже приведен код, который я пробовал как высказал, что работает
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
function chkme() {
var x = document.getElementById('textfield');
if (x.value == 'sarin') {
alert("success");
} else {
alert("failed");
}
return true;
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form id="form1" name="form1" method="post" onsubmit="chkme();"
action="">
<input type="text" name="textfield" id="textfield" /> <input
type="text" name="textfield2" id="textfield2" /> <input
type="submit" name="button" id="button" value="Submit" />
</form>
<%
if (request.getMethod().equals("POST")) {
String textfield = request.getParameter("textfield");
String textfield2 = request.getParameter("textfield2");
%>
<%=textfield%>
<br />
<%=textfield2%>
<%
}
%>
</body>
</html>