struts中怎么把action中的值传到jsp中
写的一个登陆界面,点击登陆后,如果用户名或者密码错误,我现在只能重定向回到这个login.jsp,但是我想直接弹出“用户名或者密码错误”提示框。第一,我不知道怎么得到SU...
写的一个登陆界面,点击登陆后,如果用户名或者密码错误,我现在只能重定向回到这个login.jsp,但是我想直接弹出“用户名或者密码错误”提示框。
第一,我不知道怎么得到SUCCESS或者ERROR,第二,我不知道写在哪儿。 展开
第一,我不知道怎么得到SUCCESS或者ERROR,第二,我不知道写在哪儿。 展开
8个回答
展开全部
用ajax方式,在action类中往值栈中put一个值,然后return success,在struts的《action》标签里的《result name='success'>login.jsp</result>《result name='error'>路径</result>根据action的返回值,判定定向到哪个文件。 重定向到login.jsp,在ajax的回调函数中从值栈中取出判断,是否弹出“用户名或者密码错误”提示框,至于怎么存值取值 在值栈中 网上有很多,自己查查。
追问
这样还是重定向了,把整个页面都刷了,如果用ajax不是可以部分刷新么,而且,这个回调写在jsp的什么地方啊...求详细,给个代码实例啥的
追答
把邮箱或者qq给我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
action:
package tarena.Action.user;
import tarena.domain.User;
import tarena.sevice.ServiceFactory;
public class valiEmailAction {
private String email;
private boolean ok;//表示email是否错误
public String execute(){
System.out.println("---------start execute valiEmail---------------");
System.out.println(email);
boolean oj = ServiceFactory.getUserService().getEmail(email);
if(oj){
ok=false;
}else{
ok = true;
}
return "success";
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public boolean isOk() {
return ok;
}
public void setOk(boolean ok) {
this.ok = ok;
}
}
jsp:
<script type="text/javascript" >
function checkEmail(){
$('emailInfo').innerHTML='';
var emailcode = $('email').value;
var reg = /^[a-z0-9A-Z]+@[0-9a-zA-Z]+(.com|com.cn)$/;
if(!reg.test(emailcode)){
$('emailInfo').innerHTML="邮箱格式不正确";
}else{
new Ajax.Request(
"valiEmail.action?email="+emailcode,
{
method:'post',
onSuccess:function(res){
var js = res.responseText.evalJSON();
if(js.ok){
$('emailInfo').innerHTML="邮箱可以使用";
}else{
$('emailInfo').innerHTML="已存在该用户";
}
}
}
);
}
}
</script>
<body>
<form>
<input type="textfield" id="emailInfo" onblur="checkEmail()" />
</form>
</body>
struts2配置:
<struts>
<package name="Rigstpackage" extends="json-default" namespace="/user">
<action name="verify" class="tarena.Action.user.ValiEmailcodeAction">
<result name="success">/WEB-INF/user/loginForm.jsp</result>
<result name="fail">/WEB-INF/user/error.jsp</result>
</action>
</package>
</struts>
package tarena.Action.user;
import tarena.domain.User;
import tarena.sevice.ServiceFactory;
public class valiEmailAction {
private String email;
private boolean ok;//表示email是否错误
public String execute(){
System.out.println("---------start execute valiEmail---------------");
System.out.println(email);
boolean oj = ServiceFactory.getUserService().getEmail(email);
if(oj){
ok=false;
}else{
ok = true;
}
return "success";
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public boolean isOk() {
return ok;
}
public void setOk(boolean ok) {
this.ok = ok;
}
}
jsp:
<script type="text/javascript" >
function checkEmail(){
$('emailInfo').innerHTML='';
var emailcode = $('email').value;
var reg = /^[a-z0-9A-Z]+@[0-9a-zA-Z]+(.com|com.cn)$/;
if(!reg.test(emailcode)){
$('emailInfo').innerHTML="邮箱格式不正确";
}else{
new Ajax.Request(
"valiEmail.action?email="+emailcode,
{
method:'post',
onSuccess:function(res){
var js = res.responseText.evalJSON();
if(js.ok){
$('emailInfo').innerHTML="邮箱可以使用";
}else{
$('emailInfo').innerHTML="已存在该用户";
}
}
}
);
}
}
</script>
<body>
<form>
<input type="textfield" id="emailInfo" onblur="checkEmail()" />
</form>
</body>
struts2配置:
<struts>
<package name="Rigstpackage" extends="json-default" namespace="/user">
<action name="verify" class="tarena.Action.user.ValiEmailcodeAction">
<result name="success">/WEB-INF/user/loginForm.jsp</result>
<result name="fail">/WEB-INF/user/error.jsp</result>
</action>
</package>
</struts>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
login.jsp : <script>
if('<property valuel="login"/>'){alert("用户名或者密码错误");}
//页面要引入struts2的标签
<script>
……<form action="login" method="post"/>……
struts.xml : ……<action name="login.action" class="com.你的action类" method="方法"/>
<result name="success" >/login.jsp</result>
<result name="input(或error)" >/login.jsp?login=fail</result>
</action>
Login.java: Class Login{
…… //变量
public String execute(){
if(isLogin()){ //isLogin()方法检查用户名密码是否正确
retrun SUCCESS;
}else{
return INPUT;
}
}
}
if('<property valuel="login"/>'){alert("用户名或者密码错误");}
//页面要引入struts2的标签
<script>
……<form action="login" method="post"/>……
struts.xml : ……<action name="login.action" class="com.你的action类" method="方法"/>
<result name="success" >/login.jsp</result>
<result name="input(或error)" >/login.jsp?login=fail</result>
</action>
Login.java: Class Login{
…… //变量
public String execute(){
if(isLogin()){ //isLogin()方法检查用户名密码是否正确
retrun SUCCESS;
}else{
return INPUT;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以去淘宝搜下 随书光盘下载服务 ,我有本德语书没光盘,就是托店主帮忙找到的,会收1, 2 块钱,但和买书比便宜多了...... ..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,使用AJAX
2.addFieldError(); forward 到JSP是如果发现有fieldError,使用js alert出来
2.addFieldError(); forward 到JSP是如果发现有fieldError,使用js alert出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询