软工_API定义

  1. 1. 教程
  2. 2. 登陆(/pages/Login.jsp)
  3. 3. 学生
    1. 3.1. class StuClass(/pages/student/info.jsp)
    2. 3.2. 个人信息页面(/pages/student/info.jsp)
      1. 3.2.1. 毕业信息核对(/pages/student/infoCheck.jsp)
      2. 3.2.2. 基本信息修改(/pages/student/infoModify.jsp)

软件工程课程项目API

为了进行更好的分工合作,将API罗列如下…

教程

由于项目将使用tomcat+struts2+mysql搭建,请认真阅读sample中的表格提交功能以及数据加载功能。

Sample的一个简单的运行描述 感谢小组长@6carol6童鞋。

登陆(/pages/Login.jsp)

action name: Login

servlet name: SampleProject.Login

page value:

name type field more
username String 用户名
password String 密码
identity String {0,1,2} 用户身份:学生、教师、管理员

请注意这里page value的使用:是指页面将需要对应的action类中实现相应的getter和setter函数

例如:

表单提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//表单提交将默认执行action中的execute函数
//在执行该函数之前,所有表单中的项 将 调用 对应的setter函数进行赋值

//Login.jsp
<s:textfield key="username"/>
//Login.java
private String username;
public String getUsername()
{

return username;
}
public void setUsername(String username) //username = "admin"
{

this.username = username; //this.username = "admin"
}

//此时调用
public String execute() throws Exception
{

getUsername();//得到"admin"
}

action method:

execute => 验证用户身份,失败返回INPUT

return:

“student” => student/StuInfo.action

“teacher” => teacher/TeacherInfo.action

“admin” => admin/AdminInfo.action

ERROR/INPUT => /pages/Login.jsp(with validation error)

on the back:

  • 验证用户名和密码

more TODO:

  • 用户Cookie
  • 用户密码RSA加密
  • 验证码

学生

class StuClass(/pages/student/info.jsp)

name type field more
no String 学号
name String 姓名
id String 身份证
birth Date 出生日期
dept String 院系
major String 专业
domain String 研究方向
enrollyear Date 入学年份
grade String 所属年级
schoolyear String 学制
state String 学籍状态
degree String 学位
mobile String 手机号
email String 邮箱
addr String 地址
postcode String 邮编
fname String 父姓名
fwork String 父工作单位
mname String 母姓名
mname String 母工作单位
homeNumber String 家庭电话

这里列出的是指对应的StuClass实例里面需要实现的getter和setter函数

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//页面需要name的值,
<s:property value="detail.name">
//而在后台action的类里面,有
private StuClass detail;
public StuClass getDetail()
{

return this.detail;
}
public void setDetail(StuClass detail)
{

this.detail = detail;
}
//那么StuClass这个类中需要有name的getter,即:
public StuClass getName()
{

return xxxxxx;//随便返回什么,但它的值必须是我要的name
}



个人信息页面(/pages/student/info.jsp)

action name: StuInfo

servlet name: SampleProject.Student.Info

page value:

name type field more
username String 用户名
identity String {0,1,2} 用户身份:学生、教师、管理员

action method:

execute => 利用session获得用户名和用户身份

return:

SUCCESS => /pages/student/info.jsp

ERROR => Login.action

on the back:

  • 利用session获得用户名和用户身份
  • 验证用户名权限,错误则返回Login.action

more TODO:

  • 全局通知栏

毕业信息核对(/pages/student/infoCheck.jsp)

action name: StuInfoCheck

servlet name: SampleProject.Student.InfoCheck

page value:(????????)

name type field more
detail StuClass 用户信息
detail.no String 学号
detail.name String 姓名
detail.id String 身份证
detail.dept String 院系
detail.major String 专业
detail.domain String 研究方向
detail.enrollyear Date 入学年份
detail.grade String 所属年级
detail.schoolyear String 学制
detail.degree String 学位

使用说明见学生类

action method:

execute => 执行基本信息的读取

return:

SUCCESS => /pages/student/infoCheck.jsp

ERROR => Login.action

on the back:

  • 利用session获得用户名和用户身份
  • 验证用户名权限,错误则返回Login.action
  • 读取学生毕业信息,填充相应字段

more TODO:


基本信息修改(/pages/student/infoModify.jsp)

action name: StuInfoModify

servlet name: SampleProject.Student.InfoModify

page value:

name type field more
mobile String 手机号
email String 邮箱
addr String 地址
postcode String 邮编
fname String 父姓名
fwork String 父工作单位
mname String 母姓名
mname String 母工作单位
homeNumber String 家庭电话

注意

action method:

execute => 执行基本信息的读取

return

SUCCESS => /pages/student/infoModify.jsp

ERROR => Login.action

action method:

tryModify => 尝试执行基本信息的修改

成功:addActionMessage()

失败:addActionError()

return

SUCCESS => /pages/student/infoModify.jsp

“fail” => /pages/student/infoModify.jsp

on the back:

  • 利用session获得用户名和用户身份
  • 验证用户名权限,错误则返回Login.action
  • 在初次载入页面时,将 执行execute函数
  • 在使用页面上的button提交修改时,将 执行 该action的 tryModify函数

more TODO: