Struts框架之工資計算情況

eclipse做struts框架的工資計算情況

一、安裝好eclipse

(1)添加jdk

1、下載好jdk,並在我的此屬性–高級系統設置–環境變量–系統變量
在這裏插入圖片描述
2、Window+r鍵,打開cmd,輸入java -version(如下圖,已經成功)。
在這裏插入圖片描述

(2)添加Tocat

在這裏插入圖片描述

二、新建一個Dynamic Web Project

在這裏插入圖片描述

三、所需jar包

鏈接:https://pan.baidu.com/s/1I3E9KUH_2wQMhnAo6MogOA

提取碼:m787
在這裏插入圖片描述

四、目錄

在這裏插入圖片描述

五、代碼

(1)、在web.xml中配置(添加以下代碼

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
   <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

(2)、建一個輸入界面InputEmployee.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>本院全職教師工資計算</title>
</head>
<body>
<s:form action='FulltimeTeacher'>
<div style="text-align:center">本院全職教師工資計算</div>
<s:textfield name="name"  label="姓名"/> <br />
			<s:textfield name="title" label="職稱" /><br />
			<s:textfield name="hour"   label="本月超額課時" /><br />
			<s:submit   value="計算" name = "Cal" />	<s:reset  value="重填" />
</s:form>
</body>
</html>

(3)、新建一個struts.xml文件,並配置

在這裏插入圖片描述

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   <constant name="struts.devMode" value="true" />
   <constant name="struts.enable.DynamicMethodInvocation" value="true" />
 <package name="example" extends="struts-default">
 
        <action name="*FulltimeTeacher" class="PayrollAction.FulltimeTeacherAction" method="{1}">
		<result name="success">ShowCalResult.jsp</result>
			<result name="error">Error.jsp</result>
			<result name="input">InputEmployee.jsp</result>
		</action>
 </package>
</struts>

(4)、新建 PayrollAction包,包中FulltimeTeacherAction行爲類

package PayrollAction;

import java.text.SimpleDateFormat;

import PayrollAction.FulltimeTeacherAction;
import Ex2_Payroll.FulltimeTeacher;
import com.opensymphony.xwork2.ActionSupport;

public class FulltimeTeacherAction extends ActionSupport {
	private String name;
	private String title;
	private Float hour;
	private Float wage;
	private String onboardtime;
	
	public FulltimeTeacherAction()
	{
		onboardtime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E").format(java.util.Calendar.getInstance().getTime());
	}

	public String CalculateWage() 
	{
		try
		{
			FulltimeTeacher teacher = new FulltimeTeacher();
			teacher.setName(name);
			teacher.setTitle(title);
			System.out.println(hour);
			teacher.setExtraclasshour(hour);
			
			teacher.calculateWage();
			wage =teacher.getWage();
			//
			if (wage>0)
				return SUCCESS;
			else  
			{
				return INPUT;
			}
		}
		catch(Exception e)
		{
			return ERROR;
		}
	}
	
	public String SetDefault() {		
		return SUCCESS;
	}

	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getTitle() {
		return title;
	}
	public void setHour(Float hour) {
		this.hour = hour;
	}
	public Float getHour() {
		return hour;
	}
	public void setWage(Float wage) {
		this.wage = wage;
	}
	public Float getWage() {
		return wage;
	}

	public String getOnboardtime() {
		return onboardtime;
	}

	public void setOnboardtime(String onboardtime) {
		this.onboardtime = onboardtime;
	}
}

(5)、新建 Ex2_Payroll包,包中新建 Employee類

package Ex2_Payroll;

abstract class Employee
{
	private String name;
	private String title;
	private float wage;

	
	Employee(String name,String title)
	{
		this.name = name;
		this.title = title;
	}
	Employee()
	{
		
	}

	abstract  void calculateWage() ;
	
	public float getWage() {
		return wage;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getTitle() {
		return title;
	} 
	protected void setWage(float wage)
	{this.wage = wage;}

}


(6)、在 Ex2_Payroll包,包中新建FulltimeTeacher類

package Ex2_Payroll;

import java.util.Date;

public class FulltimeTeacher extends Employee
{
	private float basicwage;
	private float extraclasshour;
	public FulltimeTeacher(String name,String title)
	{
		super(name,title);
	}
	public FulltimeTeacher(String name,String title,Date d)
	{
		super(name,title);
	}
	public FulltimeTeacher()
	{
		
	}

	public void calculateWage()
	{
		if (this.getTitle().equals("副教授"))
			this.setWage(this.extraclasshour*80+4000) ;
		if (this.getTitle().equals("教授"))
			this.setWage(this.extraclasshour*100+5000) ;
	}
	public void setBasicwage(float basicwage) {
		this.basicwage = basicwage;
	}
	public float getBasicwage() {
		return basicwage;
	}
	public void setExtraclasshour(float extraclasshour) {
		this.extraclasshour = extraclasshour;
	}
	public float getExtraclasshour() {
		return extraclasshour;
	}	 
	public static void main(String[] args) {		

	}
}

(7)、ShowCalResult.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>工資情況一覽</title>
</head>
<body>
	你好!<s:property value="name" /></br>
	職稱爲:<s:property value="title" /></br>
	超額課時爲:<s:property value="hour" /></br>
	工資爲:	<s:property value="wage" /> </br>
	<s:property   value="onboardtime" /><br />
</body>
</html>

(8)、在 Ex2_Payroll包,包中新建 ParttimeTeacher類

package Ex2_Payroll;

public class ParttimeTeacher extends Employee
{
	
	private float classhour;
	public  ParttimeTeacher(String name,String title,java.util.Date time)
	{super(name,title);}
	
	public void calculateWage()
	{
		if (this.getTitle().equals("副教授"))
			this.setWage( this.getClasshour()*100);
		if (this.getTitle().equals("教授"))
			this.setWage(this.getClasshour()*150) ;
	}
	public void setClasshour(float classhour) {
		this.classhour = classhour;
	}
	public float getClasshour() {
		return classhour;
	}	 
}

六、結果圖

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章