java service 标签_spring标签库和@Service

使用标签库需要将tomcat安装目录下webapps\examples\WEB-INF\lib下的jstl.jar复制到项目的WEB-INF\lib目录下

jstl.jar下载地址:

JSTL 1.0 的声明是:

JSTL1.1以后 的声明是:

引入标签库

表单标签的语法:

表单标签除了具有 HTML 表单元素属性以外,还具有 acceptCharset、commandName、cssClass、cssStyle、htmlEscape 和 modelAttribute 等属性。acceptCharset:定义服务器接受的字符编码列表。

commandName:暴露表单对象的模型属性名称,默认为 command。

cssClass:定义应用到 form 元素的 CSS 类。

cssStyle:定义应用到 form 元素的 CSS 样式。

htmlEscape:true 或 false,表示是否进行 HTML 转义。

modelAttribute:暴露 form backing object 的模型属性名称,默认为 command。

其中,commandName 和 modelAttribute 属性的功能基本一致,属性值绑定一个JavaBean 对象。

public String inputUser(Model model) {

...

model.addAttribute("user", new User());

return "userAdd";

}

对应的表单如下

表单组件

复选框

张三

李四

王五

赵六

checkboxes 标签渲染多个复选框,是一个选项组,等价于多个 path 相同的 checkbox 标签。它有 3 个非常重要的属性,即 items、itemLabel 和 itemValue。items:用于生成 input 元素的 Collection、Map 或 Array。

itemLabel:items 属性中指定的集合对象的属性,为每个 input 元素提供 label。

itemValue:items 属性中指定的集合对象的属性,为每个 input 元素提供 value。

checkboxes 标签的语法格式如下:

示例代码如下:

上述示例代码是将 model 属性 hobbys 的内容(集合元素)渲染为复选框。在 itemLabel 和 itemValue 省略的情况下,如果集合是数组,复选框的 label 和 value 相同;如果是 Map 集合,复选框的 label 是 Map 的值(value),复选框的 value 是 Map 的关键字(key)。

单选框

radiobuttons 标签渲染多个 radio,是一个选项组,等价于多个 path 相同的 radiobutton 标签。radiobuttons 标签的语法格式如一下:

该标签的 itemLabel 和 itemValue 属性与 checkboxes 标签的 itemLabel 和 itemValue 属性完全一样,但只允许单选。

下拉框

xxx

该标签的 itemLabel 和 itemValue 属性与 checkboxes 标签的 itemLabel 和 itemValue 属性完全一样。

errors 标签

errors 标签渲染一个或者多个 span 元素,每个 span 元素包含一个错误消息。它可以用于显示一个特定的错误消息,也可以显示所有错误消息。其语法格式如下:

其中,“*”表示显示所有错误消息;“xxx”表示显示由“xxx”指定的特定错误消息。

表单页面代码如下userAdd.jsp

添加一个用户

用户名:

爱好:

朋友:

张三

李四

王五

赵六

职业:

请选择职业

户籍:

请选择户籍

个人描述:

控制器代码如下:

@RequestMapping(value = "/save")

public String addUser(@ModelAttribute User user, Model model) {

if (userService.addUser(user)) {

logger.info("成功");

return "redirect:/user/list";

} else {

logger.info("失败");

HashMap hobbys = new HashMap();

hobbys.put("篮球", "篮球");

hobbys.put("乒乓球", "乒乓球");

hobbys.put("电玩", "电玩");

hobbys.put("游泳", "游泳");

// 这里不需要 model.addAttribute ("user", new User ()),因为 @ModelAttribute // 指定 form backing object model.addAttribute("hobbys", hobbys);

model.addAttribute("carrers", new String[] { "教师", "学生",

" coding搬运工", "IT民工", "其他" });

model.addAttribute("houseRegisters", new String[] { "北京", "上海",

"广州", "深圳", "其他" });

return "userAdd";

}

}

JavaBean的代码如下,User.java

public class User {

private String userName;

private String[] hobby; // 兴趣爱好 private String[] friends; // 朋友 private String carrer;

private String houseRegister;

private String remark;

// 省略setter和getter方法}

Spring服务层@Service和依赖注入@Autowired

定义公共接口服务类

import pojo.UserForm;

public interface UserService {

boolean login(UserForm user);

boolean register(UserForm user);

}

服务层需要使用@Service注解,导入springframework.stereotype.Service包

import org.springframework.stereotype.Service;

import pojo.UserForm;

//注解为一个服务@Service

public class UserServiceImpl implements UserService {

public boolean login(UserForm user) {

if ("zhangsan".equals(user.getUname())

&& "123456".equals(user.getUpass())) {

return true;

}

return false;

}

public boolean register(UserForm user) {

if ("zhangsan".equals(user.getUname())

&& "123456".equals(user.getUpass())) {

return true;

}

return false;

}

}

Spring MVC框架本身就是一个非常优秀的 MVC 框架,它具有依赖注入的优点,可以通过 org.springframework.beans.factory. annotation.Autowired 注解类型将依赖注入到一个属性(成员变量)或方法,例如在控制器中声明:

@Autowired

public UserService userService;

在控制器中的代码,这一段用到了Spring的服务

if(userService.addUser(user)){

return"redirect:/user/list";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值