`
香菜的故事集锦II
  • 浏览: 3110 次
文章分类
社区版块
存档分类
最新评论

自动の转化!次回合的战斗:验证格式!

阅读更多
好了让我们愉快的开始第二回合
这一回合的内容是页面上的类型转换
主要的呢
先说个简单的

Struts2实现的自动类型转换
1:所有基本数据类型的转换
2:本地日期格式(YYYY-MM-DD) 自动转为date类型
3:把String【】数组类型转成了使用逗号空格间隔的字符串

Struts不能实现的类型,就需要我们自己转了
我要写的就是自己转类型

首先呢,是在web下,写个类,类名就叫myConverter,
要让这个类继承 extends StrutsTypeConverter这个类

类里面有两个方法。
一个是String转date
一个是date转String
现在写一下实现的方法

Public class MyConverter extends StrutsTypeConverter
{
Private SimleDateFormat sdf = new SimpleDateFromat(“mm/dd/yyyy”);
//arg1:被转换的类型 arg2:转换成什么类型
Public Object ConvertFromString(Map arg0,String[] arg1,class arg2)
{
If(arg1.length==0||arg1==null)
{
Return null;
}
String date = arg1[0];
If(arg2==java.util.Date.class)
{
Try
{
Return sdf.parse(date);
}
Catch(ParseException e)
{
e.printStack Trace();
}
}
Return null;
}
}
Public String convertToString(Map arg0,Object arg1)
{
If(arg1 instanceof Date)
{
Date date=(Date)arg1;
Return sdf.format(date);
}
Return null;
}
}

好了 开始怎么配置吧
有两个方法配置,一个就是配置这个方法的,
在这个实体类包写:
(假如写birthday) birthday-conversion.properties
怎么就记不下来这个英文呢
Properties properties properties properties properties properties properties properties properties properties properties properties properties properties properties properties
里面写着:birthday=com.qianfeng.
第二个方法:是在src下 配置文件
好了 关门了 明天写
好了 明天到了 ,可是我却不记得昨天我写到哪了

想起来了想起来了(经过了看源代码)
写一个配置文件
名字叫后悔~
不对, (全局的,在src下)
Xwork-conversion.properties
java.util.Date=com.qianfeng.web.action.converter.MyConverter


下面开始验证,划重点,敲黑板
1编程式验证
(硬解码)
Struts内部封装了一个map,这个map的键就是页面上的name属性的值
Map的值就是验证结果信息
重写ActionSupport中的validate方法,把验证信息存在map中
addFieldError方法用来验证信息存储到map中

默认在执行该action的任何动作方法之前都进行验证
怎么让不需要验证的方法,不执行validate?
1:使用注解:在不需要执行验证的动作方法上加入注解@SkipValidation
2:改变验证方法的名称:validate+动作方法名(首字母大写)

注意 必须继承actionsupport

@Override
public void validate()
{
if(“”.equals(user.getUsername()) || user.getUsername()==null)
{
//把验证信息存到map中
addFieldError(“username”,”用户名不为空”);
}
if(StringUtils.isEmpty(user.getUsername()))
{
addFieldError(“username”,”用户名不为空”);
}
}

public void validateRegist()
{
if(StringUtils.isEmpty(user.getUsername()))
{
addFieldError(“username”,”用户名不为空”);
}
}

ok
好了测试成功 记得要写input反馈才可以哦~

第二种方式
声明式验证:
在动作类所在的包下创建xml 文件,命名规范:动作类名-validation.xml
1创建文件:动作类名-validation.xml
默认在执行动作类任何一个方法都要执行
解决方式:
1:使用注解,再不需要执行验证的动作方法下加入注解@SkipValidation
2:改变xml文件的名称:动作类名-动作名-vlidation.xml
2 加入dtd约束:xwork-core-2.3.15.3JAR包下找到 xwork-validator-1.03dtd

我把验证打过来了这破玩意找的太费事了
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  "-//Apache Struts//XWork Validator 1.0.3//EN"
  "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

分享到:
评论

相关推荐

    设计和实现回合制战斗系统Combat

    C++课程设计需要的哥们可以自提,包含主函数,可以...在startWar()中,随机决定由哪一方率先发起攻击(恐怕是每个回合都随机决定谁先出手会比较公平,如果每回合先出手都是固定一方,那么战斗结果完全是确定性的。

    回合制战斗系统思路

    回合制战斗系统思路 回合制战斗系统是网络游戏中的一种常见的战斗方式,具有慢节奏、易操作、收集养成、聊天交友等特点,吸引了许多玩家。然而,回合制战斗也存在一些缺点,如容易让人感到无聊、给一般人的印象就是...

    C++回合制战斗系统

    利用C++面向对象程序设计方法,实现两支队伍(各包含至少一名战士、法师和大师)的自动回合制对战

    回合制战斗系统Combat

    实现随机回合制战斗系统Combat

    易语言战斗回合制游戏源代码

    易语言战斗回合制游戏源代码,回合制游戏!

    简单的回合制战斗理论演示

    《古月游戏开发库》官方示例程序十──简单的回合制战斗理论演示  同样的这个示例仅仅演示了一下各位常见的回合制战斗引擎的设计理论。当然,这仅仅是设计理论的演示,并不是真正的战斗引擎。  示例所用的...

    unity5.6版本回合制战斗DEMO

    回合制自己写的 战斗DEMO 加动画状态 Q键移动并攻击。 代码很简单。不要抱有太大希望 。作为新手学习使用。 public enum HeroStatus { idle = 0, //空闲 attack, //攻击 other, //其他 hit, //受击 die, //...

    基于unity的回合制网游战斗系统的研究与实现.doc

    网络游戏的发展推动了各种游戏类型的创新,其中回合制战斗系统因其独特的策略性和节奏感在众多玩家中受到喜爱。本研究将深入探讨基于Unity3D的回合制网游战斗系统的实现,结合实际项目《PKer》的设计与开发,提供一...

    ios小游戏_RPG回合制战斗游戏源码

    《iOS小游戏:RPG回合制战斗游戏源码详解》 在移动游戏开发领域,iOS平台以其优秀的用户体验和广泛的用户基础,一直是开发者们的热门选择。本篇文章将深入探讨一款基于iOS平台的小游戏——RPG回合制战斗游戏的源码...

    C#开发回合制游戏(多怪物版)

    在本项目"C#开发回合制游戏(多怪物版)"中,我们将深入探讨如何使用C#编程语言构建一款具有回合制战斗系统的游戏。这通常涉及到游戏逻辑、对象模型设计、多线程处理以及用户界面等多个方面的知识。让我们逐一展开...

    设计和实现回合制战斗系统combat(Soldier,Wizard,Master)

    在本项目设计中,我们将深入探讨如何设计和实现一个基于C++的回合制战斗系统,主要涉及的角色有Soldier(士兵)、Wizard(法师)和Master(大师)。这个系统将涵盖角色的基本属性、技能、行动机制以及战斗逻辑。下面...

    c#游戏开发基于unity3d的回合制RPG游戏源码.zip

    c#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的...

    回合制卡牌战斗游戏服务器架构和业务源码(跨平台,框架和主逻辑C++,登录支付php)

    3.游戏的核心玩法为卡牌收集,九宫格的回合制战斗,包含了装备系统,背包系统,成就系统,排行榜,竞技场,工会,工会战斗,世界boss,活动,签到,任务系统,邮件系统,其他丰富的副本推进玩法,已上线经过验证的...

    易语言回合制游戏源码

    《易语言回合制游戏源码》是一款基于易语言开发的回合制单机游戏,名为“梦想逍遥游”,它模仿了知名网络游戏《梦幻西游》的游戏模式。本游戏源码为开发者提供了二次开发的可能性,使玩家或程序员可以根据自己的需求...

    unity回合制卡牌demo

    基本的回合逻辑和项目框架搭建 using UnityEngine; using System.Collections; public class Fighter : MonoBehaviour { public GameObject objPic = null; public GameObject objHp = null; public GameObject ...

    回合制游戏c++源代码

    回合制游戏是一种玩家和敌人按顺序执行行动的游戏模式,它通常包含角色设定、战斗系统和策略元素。以下是对该主题的详细分析: 1. **C++编程语言**:C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅...

    Android回合制小游戏代码

    在Android平台上开发一款回合制小游戏是一项有趣的挑战,它涉及到许多Android开发的核心技术。在这个项目中,我们关注的是“Android回合制小游戏代码”,这通常是指一个简单的游戏应用,玩家按照顺序执行操作,直到...

    Next-Up:自动聚焦新战斗员

    在他们的回合开始时自动关注当前的战斗员标记(客户端设置) 为 GM 拉起其特定的演员表。 关闭之前的战斗员表或所有打开的角色表以消除混乱 将特定工作表固定到 ui 以防止它们被关闭 设置 工作表位置 - 在 ui 中...

    基于《杀戮尖塔》回合战斗与卡牌构筑的ProjectSX游戏开发源码

    该项目是一款以《杀戮尖塔》为灵感来源的独立游戏源码,由老李主导并直播参与开发。它包含654个文件,其中包含268个GDScript脚本文件、245个...该游戏核心采用了回合战斗与卡牌构筑机制,适用于游戏开发者参考和学习。

Global site tag (gtag.js) - Google Analytics