一个Struts2标签中的s:bean的问题

普罗旺斯_ 发布于 2014/09/24 15:09
阅读 955
收藏 0

开发中用到s:bean标签,但是前台取不了值 我做了个小测试,是这样的,get,set能够取到值,调用方法就不行。

这个是类。

package com.model;

public class Test {
	private String name;
	private String password;

	public String getName() {
		return "张三";
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		System.out.println(123);
		return "1234";
		
	}
	public void setPassword(String password) {
		this.password = password;
	}

	public static String cutString(String o){
		o.substring(3);
		System.out.println(o);
		String s = "今天的天气不错";
		System.out.println(s);
		String sb = s.substring(3);
		System.out.println(sb);
		return o;
	}
}



前台我是这样写的:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:bean name = "com.model.Test" id = "test"/>

name: <s:property value="#test.name" />
<br/>
password:<s:property value="#test.password" /> 
<br/>
test:<s:property value="#test.cutString()"/>
</body>
</html>

页面:


所以我想请问各位s:bean标签是不能调用方法的吗? 
加载中
0
李星
李星

在页面debug下看有没有放到页面值栈中

<s:debug/>



0
李星
李星
test:<s:property value="#test.cutString()"/>

这种方法应该适合非静态的方法吧,你试试改成非静态方法,去掉static:

public String cutString(String o){
        o.substring(3);
        System.out.println(o);
        String s = "今天的天气不错";
        System.out.println(s);
        String sb = s.substring(3);
        System.out.println(sb);
        return o;
    }




返回顶部
顶部