struts数据标签的使用

现在在做的项目页面中许多都引入了header.jsp。项目要求:需要根据登陆情况,实时的在header.jsp显示相应的链接。这里,我用到了Struts2中的数据标签,即action标签。该标签用于在JSP页面直接调用一个Action,通过指定executeResult属性参数,将Action的处理结果包含到页面中。以下是我在项目中用到的部分代码:
引入的header.jsp页面中用到的部分代码:
<a title="<s:property value="loginMessage"/>" class="welcome" href="<s:property value="address" />"><s:property value="tip"/></a>
对应GlobalHeaderAction中的具体逻辑:
public class GlobalHeaderAction extends ActionSupport{
private String loginName;
public String tip;
public String loginMessage;
public String address;
public String validateLogin(){
loginName = (String) ActionContext.getContext().getSession().get("userName");
Map request = (Map)ActionContext.getContext().get("request");
request.put("userName",loginName);
if(loginName!=null){
tip = "欢迎"+loginName;
loginMessage = "欢迎访问博客";
address = "blog/visitMyBlogs.action
";
return SUCCESS;
}
else
tip = "您还没登陆";
loginMessage = "请登陆";
address = "login.jsp";
return ERROR;
}

}
Struts.xml中的具体配置:
<action name="validateLoginIn"
class="com.softeye.common.action.GlobalHeaderAction" method="validateLogin">
<result name="success">/header.jsp</result>
<result name="error">/header.jsp</result>
</action>
最后,在需要引用header.jsp的页面中的相应为位置写下:
<s:action name="validateLogin" executeResult="true"></s:action>
同时为了使功能更加符合需求,我在header.jsp页面进行了控制,部分代码如下:
<s:set name="userName" value="#request.userName"/>
<s:if test="#userName!=null">
<a style="color:red" href="<%=path %>/blog/vistMyBlogs">我的博客</a>
[url=<%=path %>/exit]退出[/url]
</s:if>
<s:elseif test="#userName==null">
[url=login.jsp]登录[/url]
<a class="nobg" href="register.jsp">注册</a>
</s:elseif>
至此,功能上就基本上完成了需求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值